Поделиться через


Функция ZwDeleteFile (ntifs.h)

Подпрограмма ZwDeleteFile удаляет указанный файл.

Синтаксис

NTSYSAPI NTSTATUS ZwDeleteFile(
  [in] POBJECT_ATTRIBUTES ObjectAttributes
);

Параметры

[in] ObjectAttributes

Указатель на структуру OBJECT_ATTRIBUTES , содержащую атрибуты, предоставляемые вызывающим объектом для использования в объекте файла. К этим атрибутам относятся , например, ObjectName и SECURITY_DESCRIPTOR. Этот параметр инициализируется путем вызова макроса InitializeObjectAttributes .

Возвращаемое значение

ZwDeleteFile возвращает STATUS_SUCCESS или соответствующее состояние ошибки, представляющее окончательное состояние завершения операции. Возможные коды состояния ошибок:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES Не удалось выделить временный буфер, необходимый для этой функции.
STATUS_INVALID_PARAMETER Указанный параметр ObjectAttributes был пустым указателем, а не допустимым указателем на структуру OBJECT_ATTRIBUTES или некоторые из указанных элементов структуры ObjectAttributes были недопустимыми.
STATUS_OBJECT_NAME_INVALID Параметр ObjectAttributes содержал objectName в структуре OBJECT_ATTRIBUTES , который был недопустим, так как после символа OBJECT_NAME_PATH_SEPARATOR была найдена пустая строка.
STATUS_OBJECT_NAME_NOT_FOUND Параметр ObjectAttributes содержал элемент ObjectName в структуре OBJECT_ATTRIBUTES , который не удалось найти.
STATUS_OBJECT_PATH_NOT_FOUND Параметр ObjectAttributes содержал элемент ObjectName в структуре OBJECT_ATTRIBUTES с не удалось найти путь к объекту.
STATUS_OBJECT_PATH_SYNTAX_BAD Параметр ObjectAttributes не содержал элемента RootDirectory , но элемент ObjectName в структуре OBJECT_ATTRIBUTES был пустой строкой или не содержал символа OBJECT_NAME_PATH_SEPARATOR. Это указывает на неправильный синтаксис пути к объекту.

Комментарии

ZwDeleteFile удаляет указанный объект файла.

Функция ZwDeleteFile вызывается после того, как макрос InitializeAttributes используется для задания атрибутов в структуре OBJECT_ATTRIBUTES для удаляемого объекта файла.

Существует два альтернативных способа указать имя удаляемого файла с помощью ZwDeleteFile:

  • В качестве полного имени пути, указанного в элементе ObjectName входных атрибутов ObjectAttributes.
  • Значение pathname относительно файла каталога, представленного дескриптором в элементе RootDirectory входного объекта ObjectAttributes.

Вызывающие файлы ZwDeleteFile должны выполняться в IRQL = PASSIVE_LEVEL и с включенными специальными api ядра.

Если вызов функции ZwDeleteFile выполняется в пользовательском режиме, следует использовать имя "NtDeleteFile " вместо "ZwDeleteFile".

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы Собственные системные службы Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями подпрограмм NtXxx и ZwXxx см. в разделе Использование версий NT и Zw подпрограмм собственных системных служб.

Требования

Требование Значение
Минимальная версия клиента Windows XP
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (см. раздел "Примечания")
Правила соответствия DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

См. также раздел

InitializeObjectAttributes

OBJECT_ATTRIBUTES