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


Функция ZwCreateDirectoryObject (wdm.h)

Подпрограмма ZwCreateDirectoryObject создает или открывает объект object-directory.

Синтаксис

NTSYSAPI NTSTATUS ZwCreateDirectoryObject(
  [out] PHANDLE            DirectoryHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

Параметры

[out] DirectoryHandle

Указатель на переменную HANDLE, которая получает дескриптор каталога объекта.

[in] DesiredAccess

Задает значение ACCESS_MASK , определяющее запрошенный доступ к объекту. Помимо прав доступа, определенных для всех типов объектов (см . ACCESS_MASK), вызывающий объект может указать одно или несколько следующих прав доступа, относящихся к каталогам объектов:

флаг ACCESS_MASK Тип доступа
DIRECTORY_QUERY Запрос
DIRECTORY_TRAVERSE Поиск имени
DIRECTORY_CREATE_OBJECT Создание имени
DIRECTORY_CREATE_SUBDIRECTORY Создание подкаталога
DIRECTORY_ALL_ACCESS Все предыдущие типы

[in] ObjectAttributes

Указатель на OBJECT_ATTRIBUTES структуру, содержащую атрибуты объекта, которые необходимо инициализировать, вызвав InitializeObjectAttributes.

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

ZwCreateDirectoryObject возвращает значение NTSTATUS. Возможные возвращаемые значения:

Комментарии

Когда дескриптор, на который указывает DirectoryHandle , перестанет использоваться, драйвер должен вызвать ZwClose , чтобы закрыть его.

Если вызывающий объект не работает в контексте системного потока, он должен убедиться, что все создаваемые им дескрипторы являются частными. В противном случае дескриптор может получить доступ к процессу, в контексте которого выполняется драйвер. Дополнительные сведения см. в разделе Дескрипторы объектов.

Система использует каталоги объектов для упорядочения других типов объектов, таких как объекты устройств. Дополнительные сведения см. в разделе Каталоги объектов.

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

Если вызов этой функции происходит в пользовательском режиме, следует использовать имя NtCreateDirectoryObject вместо ZwCreateDirectoryObject.

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

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

ACCESS_MASK

InitializeObjectAttributes

Использование версий Nt и Zw собственных процедур системных служб

ZwClose