mirror of
https://github.com/daeken/Zookeeper.git
synced 2025-04-02 10:52:54 -04:00
139 lines
4.7 KiB
C++
139 lines
4.7 KiB
C++
#pragma once
|
|
#include "Kernel.hpp"
|
|
|
|
// ACCESS_MASK
|
|
#define FILE_WRITE_DATA 0x00000002
|
|
|
|
// CreateDisposition
|
|
#define FILE_SUPERSEDE 0x00000000
|
|
#define FILE_OPEN 0x00000001
|
|
#define FILE_CREATE 0x00000002
|
|
#define FILE_OPEN_IF 0x00000003
|
|
#define FILE_OVERWRITE 0x00000004
|
|
#define FILE_OVERWRITE_IF 0x00000005
|
|
#define FILE_MAXIMUM_DISPOSITION 0x00000005
|
|
|
|
// CreateOptions/OpenOptions
|
|
#define FILE_DIRECTORY_FILE 0x00000001
|
|
#define FILE_WRITE_THROUGH 0x00000002
|
|
#define FILE_SEQUENTIAL_ONLY 0x00000004
|
|
#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
|
|
#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
|
|
#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
|
|
#define FILE_NON_DIRECTORY_FILE 0x00000040
|
|
#define FILE_CREATE_TREE_CONNECTION 0x00000080
|
|
#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
|
|
#define FILE_NO_EA_KNOWLEDGE 0x00000200
|
|
#define FILE_OPEN_FOR_RECOVERY 0x00000400
|
|
#define FILE_RANDOM_ACCESS 0x00000800
|
|
#define FILE_DELETE_ON_CLOSE 0x00001000
|
|
#define FILE_OPEN_BY_FILE_ID 0x00002000
|
|
#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
|
|
#define FILE_NO_COMPRESSION 0x00008000
|
|
#define FILE_RESERVE_OPFILTER 0x00100000
|
|
#define FILE_OPEN_REPARSE_POINT 0x00200000
|
|
#define FILE_OPEN_NO_RECALL 0x00400000
|
|
#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
|
|
#define FILE_COPY_STRUCTURED_STORAGE 0x00000041
|
|
#define FILE_STRUCTURED_STORAGE 0x00000441
|
|
#define FILE_VALID_OPTION_FLAGS 0x00ffffff
|
|
#define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032
|
|
#define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032
|
|
#define FILE_VALID_SET_FLAGS 0x00000036
|
|
|
|
NTSTATUS NTAPI kernel_NtOpenFile(
|
|
HANDLE *FileHandle,
|
|
ACCESS_MASK DesiredAccess,
|
|
OBJECT_ATTRIBUTES *ObjectAttributes,
|
|
IO_STATUS_BLOCK *IoStatusBlock,
|
|
uint32_t ShareAccess,
|
|
uint32_t OpenOptions
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtCreateFile(
|
|
OUT PHANDLE FileHandle,
|
|
IN ACCESS_MASK DesiredAccess,
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
|
IN PLARGE_INTEGER AllocationSize,
|
|
IN ULONG FileAttributes,
|
|
IN ULONG ShareAccess,
|
|
IN ULONG CreateDisposition,
|
|
IN ULONG CreateOptions
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtReadFile(
|
|
HANDLE FileHandle,
|
|
HANDLE Event,
|
|
PVOID ApcRoutine,
|
|
PVOID ApcContext,
|
|
PVOID IoStatusBlock,
|
|
PVOID Buffer,
|
|
ULONG Length,
|
|
PLARGE_INTEGER ByteOffset
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtWriteFile(
|
|
HANDLE FileHandle,
|
|
HANDLE Event,
|
|
PVOID ApcRoutine,
|
|
PVOID ApcContext,
|
|
PVOID IoStatusBlock,
|
|
PVOID Buffer,
|
|
ULONG Length,
|
|
PLARGE_INTEGER ByteOffset
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtDeviceIoControlFile(
|
|
HANDLE FileHandle,
|
|
HANDLE Event,
|
|
PVOID ApcRoutine,
|
|
PVOID ApcContext,
|
|
PVOID IoStatusBlock,
|
|
ULONG IoControlCode,
|
|
PVOID InputBuffer,
|
|
ULONG InputLength,
|
|
PVOID OutputBuffer,
|
|
ULONG OutputLength
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtFsControlFile(
|
|
HANDLE FileHandle,
|
|
HANDLE Event,
|
|
PVOID ApcRoutine,
|
|
PVOID ApcContext,
|
|
PVOID IoStatusBlock,
|
|
ULONG IoControlCode,
|
|
PVOID InputBuffer,
|
|
ULONG InputLength,
|
|
PVOID OutputBuffer,
|
|
ULONG OutputLength
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtClose(HANDLE handle);
|
|
|
|
NTSTATUS NTAPI kernel_NtQueryVolumeInformationFile(
|
|
IN HANDLE FileHandle,
|
|
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
|
OUT PVOID FileInformation,
|
|
IN ULONG Length,
|
|
IN FS_INFORMATION_CLASS FileInformationClass
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_IoCreateSymbolicLink(
|
|
IN PSTRING SymbolicLinkName,
|
|
IN PSTRING DeviceName
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtOpenSymbolicLinkObject(
|
|
HANDLE *LinkHandle,
|
|
OBJECT_ATTRIBUTES *ObjectAttributes
|
|
);
|
|
|
|
NTSTATUS NTAPI kernel_NtQuerySymbolicLinkObject(
|
|
HANDLE LinkHandle,
|
|
STRING *LinkTarget,
|
|
uint32_t *ReturnedLength
|
|
);
|
|
|
|
extern uint32_t kernel_HalDiskCachePartitionCount;
|