29 декабря 2000
NtCreateFile (ZwCreateFile)
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 );
Функция для создания файла.
(Описание также присутствует в 2000 DDK.)
FileHandle
HANDLE файла.
DesiredAccess
Маска доступа, основанная на описаниях FILE_* из <WinNT.h>.
ObjectAttributes
Имя файла для создания или открытия, дополнительно может содержать путь в строка имени.
Также можно указать корневой каталог, дескриптор безопасности и атрибуты OBJ_CASE_INSENSITIVE и OBJ_INHERIT.
IoStatusBlock
Указатель на структуру IO_STATUS_BLOCK, которая получает финальный статус вызова функции. Может быть:
- FILE_CREATED
- FILE_OPENED
- FILE_OVERWRITTEN
- FILE_SUPERSEDED
- FILE_EXISTS
- FILE_DOES_NOT_EXIST
AllocationSize
Размер файла после создания
FileAttributes
Атрибуты файла:
- 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
Указывает на метод совместного использования открытого файла. Может быть нулём или следующей комбинацией флагов:
- FILE_SHARE_READ
- FILE_SHARE_WRITE
- FILE_SHARE_DELETE
CreateDisposition
Указывает, как создать файл. Допустимые значения:
- FILE_SUPERSEDE Если файл существует, удалить его и создать новый.
- FILE_OPEN Ввод-вывод завершится неудачей, если файл не существует.
- FILE_CREATE Ввод-вывод завершится неудачей, если файл не существует.
- FILE_OPEN_IF Если файл существует, открыть его. Если нет, создать новый и тогда открыть.
- FILE_OVERWRITE Если файл не существует, создать и открыть его. Если существует, открыть его и стереть содержимое.
- FILE_OVERWRITE_IF Так же, как FILE_OVERWRITE, но если файла не существует, то ввод-вывод завершится неудачей.
CreateOptions
Опции создания.
EaBuffer
Буфер расширенных атрибутов, содержащий одну или несколько структур FILE_FULL_EA_INFORMATION.
EaLength
Длина EaBuffer.
Документировал:
Томаш Новак
Зависимости:
Библиотека: ntdll.lib
См. также:
FILE_FULL_EA_INFORMATION
NtDeleteFile
NtOpenFile
NtSetEaFile