Функция 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) |