mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
30981015f7
* added most missing KPH functions git-svn-id: svn://svn.code.sf.net/p/processhacker/code@2532 21ef857c-d57f-4fe0-8362-d861dc6d29cd
155 lines
4.4 KiB
C
155 lines
4.4 KiB
C
#ifndef NTIOAPI_H
|
|
#define NTIOAPI_H
|
|
|
|
// Create disposition
|
|
|
|
#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
|
|
|
|
// Create/open flags
|
|
|
|
#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
|
|
|
|
// I/O status information values for NtCreateFile/NtOpenFile
|
|
|
|
#define FILE_SUPERSEDED 0x00000000
|
|
#define FILE_OPENED 0x00000001
|
|
#define FILE_CREATED 0x00000002
|
|
#define FILE_OVERWRITTEN 0x00000003
|
|
#define FILE_EXISTS 0x00000004
|
|
#define FILE_DOES_NOT_EXIST 0x00000005
|
|
|
|
typedef struct _IO_STATUS_BLOCK
|
|
{
|
|
union
|
|
{
|
|
NTSTATUS Status;
|
|
PVOID Pointer;
|
|
};
|
|
ULONG_PTR Information;
|
|
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
|
|
|
typedef VOID (NTAPI *PIO_APC_ROUTINE)(
|
|
__in PVOID ApcContext,
|
|
__in PIO_STATUS_BLOCK IoStatusBlock,
|
|
__in ULONG Reserved
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtDeleteFile)(
|
|
__in POBJECT_ATTRIBUTES ObjectAttributes
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtCreateFile)(
|
|
__out PHANDLE FileHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in POBJECT_ATTRIBUTES ObjectAttributes,
|
|
__out PIO_STATUS_BLOCK IoStatusBlock,
|
|
__in_opt PLARGE_INTEGER AllocationSize,
|
|
__in ULONG FileAttributes,
|
|
__in ULONG ShareAccess,
|
|
__in ULONG CreateDisposition,
|
|
__in ULONG CreateOptions,
|
|
__in_bcount_opt(EaLength) PVOID EaBuffer,
|
|
__in ULONG EaLength
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtDeviceIoControlFile)(
|
|
__in HANDLE FileHandle,
|
|
__in_opt HANDLE Event,
|
|
__in_opt PIO_APC_ROUTINE ApcRoutine,
|
|
__in_opt PVOID ApcContext,
|
|
__out PIO_STATUS_BLOCK IoStatusBlock,
|
|
__in ULONG IoControlCode,
|
|
__in_bcount_opt(InputBufferLength) PVOID InputBuffer,
|
|
__in ULONG InputBufferLength,
|
|
__out_bcount_opt(OutputBufferLength) PVOID OutputBuffer,
|
|
__in ULONG OutputBufferLength
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtFsControlFile)(
|
|
__in HANDLE FileHandle,
|
|
__in_opt HANDLE Event,
|
|
__in_opt PIO_APC_ROUTINE ApcRoutine,
|
|
__in_opt PVOID ApcContext,
|
|
__out PIO_STATUS_BLOCK IoStatusBlock,
|
|
__in ULONG FsControlCode,
|
|
__in_bcount_opt(InputBufferLength) PVOID InputBuffer,
|
|
__in ULONG InputBufferLength,
|
|
__out_bcount_opt(OutputBufferLength) PVOID OutputBuffer,
|
|
__in ULONG OutputBufferLength
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtOpenFile)(
|
|
__out PHANDLE FileHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in POBJECT_ATTRIBUTES ObjectAttributes,
|
|
__out PIO_STATUS_BLOCK IoStatusBlock,
|
|
__in ULONG ShareAccess,
|
|
__in ULONG OpenOptions
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtReadFile)(
|
|
__in HANDLE FileHandle,
|
|
__in_opt HANDLE Event,
|
|
__in_opt PIO_APC_ROUTINE ApcRoutine,
|
|
__in_opt PVOID ApcContext,
|
|
__out PIO_STATUS_BLOCK IoStatusBlock,
|
|
__out_bcount(Length) PVOID Buffer,
|
|
__in ULONG Length,
|
|
__in_opt PLARGE_INTEGER ByteOffset,
|
|
__in_opt PULONG Key
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtWriteFile)(
|
|
__in HANDLE FileHandle,
|
|
__in_opt HANDLE Event,
|
|
__in_opt PIO_APC_ROUTINE ApcRoutine,
|
|
__in_opt PVOID ApcContext,
|
|
__out PIO_STATUS_BLOCK IoStatusBlock,
|
|
__in_bcount(Length) PVOID Buffer,
|
|
__in ULONG Length,
|
|
__in_opt PLARGE_INTEGER ByteOffset,
|
|
__in_opt PULONG Key
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtLoadDriver)(
|
|
__in PUNICODE_STRING DriverServiceName
|
|
);
|
|
|
|
typedef NTSTATUS (NTAPI *_NtUnloadDriver)(
|
|
__in PUNICODE_STRING DriverServiceName
|
|
);
|
|
|
|
#endif
|