Функция 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) |
См. также раздел
Использование версий Nt и Zw собственных процедур системных служб