MCPcopy Create free account
hub / github.com/NoMercy-ac/NoMercy / FilesAPI

Method FilesAPI

Source/Client/NM_Sys/API/FilesAPI.cpp:4–32  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2#include "FilesAPI.h"
3
4FilesAPI::FilesAPI(LPCWSTR FilePath, CREATE_FILE_TYPE Type, ACCESS_MASK AccessMask, ULONG ShareAccess) :
5 hFile(NULL)
6{
7 UNICODE_STRING Path;
8 RtlInitUnicodeString(&Path, FilePath);
9
10 OBJECT_ATTRIBUTES ObjectAttributes;
11 InitializeObjectAttributes(&ObjectAttributes, &Path, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL);
12
13 IO_STATUS_BLOCK IoStatusBlock = {};
14 LARGE_INTEGER AllocationSize = {};
15
16 ULONG CreateDisposition = FILE_OVERWRITE;
17 switch (Type)
18 {
19 case fCreateEmpty:
20 CreateDisposition = FILE_OVERWRITE_IF;
21 break;
22 case fOpenExisting:
23 CreateDisposition = FILE_OPEN;
24 break;
25 case fOpenOrCreate:
26 CreateDisposition = FILE_OPEN_IF;
27 break;
28 }
29
30 CreationStatus = ZwCreateFile(&hFile, AccessMask, &ObjectAttributes, &IoStatusBlock, &AllocationSize, FILE_ATTRIBUTE_NORMAL, ShareAccess, CreateDisposition,
31 FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0);
32}
33
34
35NTSTATUS FilesAPI::Read(OUT PVOID Buffer, ULONG Size, OPTIONAL UINT64 Offset) const

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected