2OOO, 29 December
NtCreateFile
NtCreateFile
NTSYSAPI
NTSTATUS
NTAPI
NtCreateFile(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER AllocationSize OPTIONAL,
IN ULONG FileAttributes,
IN ULONG ShareAccess,
IN ULONG CreateDisposition,
IN ULONG CreateOptions,
IN PVOID EaBuffer OPTIONAL,
IN ULONG EaLength );
(Avaiable also in 2000 DDK.)
- FileHandle Result of call -
HANDLE to File Object.
- DesiredAccess Access mask based on
definitions in schema FILE_* from
<WinNT.h>.
- ObjectAttributes 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.
- IoStatusBlock Pointer to
IO_STATUS_BLOCK structure, that receive final status of
function call. Can be one of:
- FILE_CREATED
- FILE_OPENED
- FILE_OVERWRITTEN
- FILE_SUPERSEDED
- FILE_EXISTS
- FILE_DOES_NOT_EXIST
- AllocationSize File size after
creation.
- FileAttributes Attributes for newly
created file, as follows:
- FILE_ATTRIBUTE_READONLY
- FILE_ATTRIBUTE_HIDDEN
- FILE_ATTRIBUTE_SYSTEM
- FILE_ATTRIBUTE_ARCHIVE
- FILE_ATTRIBUTE_NORMAL
- FILE_ATTRIBUTE_TEMPORARY
- FILE_ATTRIBUTE_OFFLINE
- FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
- ShareAccess Specifies share method for
opened object. Can be set to zero or any combination of flags:
- FILE_SHARE_READ
- FILE_SHARE_WRITE
- FILE_SHARE_DELETE
- CreateDisposition Specifies 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.
- CreateOptions Creation options.
- EaLength Length of EaBuffer.
- Documented by:
- Tomasz Nowak
Requirements:
- Library: ntdll.lib
See also:
-
FILE_FULL_EA_INFORMATION
-
NtDeleteFile
-
NtOpenFile
-
NtSetEaFile