#ifndef _NTIOAPI_H
// System calls
NTSYSCALLAPI
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_reads_bytes_opt_(EaLength) PVOID EaBuffer,
_In_ ULONG EaLength
);
View code on GitHub#ifndef _NTZWAPI_H
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwCreateFile(
_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_reads_bytes_opt_(EaLength) PVOID EaBuffer,
_In_ ULONG EaLength
);
View code on GitHubThis function is documented in Windows Driver Kit here and here.
(Available also in 2000 DDK.)
Result of call - HANDLE to File Object.
Access mask based on definitions in schema FILE_* from <WinNT.h>.
Name of file to create (or open), optionally path in name string. You can also define root directory, security descriptor and attributes OBJ_CASE_INSENSITIVE and OBJ_INHERIT.
Pointer to IO_STATUS_BLOCK structure, that receive final status of function call. Can be one of:
File size after creation.
Attributes for newly created file, as follows:
FILE_ATTRIBUTE_READONLYFILE_ATTRIBUTE_HIDDENFILE_ATTRIBUTE_SYSTEMFILE_ATTRIBUTE_ARCHIVEFILE_ATTRIBUTE_NORMALFILE_ATTRIBUTE_TEMPORARYFILE_ATTRIBUTE_OFFLINEFILE_ATTRIBUTE_NOT_CONTENT_INDEXEDSpecifies share method for opened object. Can be set to zero or any combination of flags:
FILE_SHARE_READFILE_SHARE_WRITEFILE_SHARE_DELETESpecifies disposition how to create or open object and can be one of:
FILE_SUPERSEDE - If file exists, deletes it before creation of new one.FILE_OPEN - Fails, if file not exists.FILE_CREATE - Fails, if file exists.FILE_OPEN_IF - If file exists, opens it. If not, creates new one and then open it.FILE_OVERWRITE - If file not exists, create and open it. If exists, open them and reset content.FILE_OVERWRITE_IF - As FILE_OVERWRITE, but fails if file not exists.Creation options.
Buffer for Extended Attributes contains one or more of FILE_FULL_EA_INFORMATION structures.
Length of EaBuffer.