Функция ZwOpenDirectoryObject (ntifs.h)
Подпрограмма ZwOpenDirectoryObject
Синтаксис
NTSYSAPI NTSTATUS ZwOpenDirectoryObject(
[out] PHANDLE DirectoryHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
Параметры
[out] DirectoryHandle
Дескриптор для вновь открытого объекта каталога.
[in] DesiredAccess
Структура ACCESS_MASK, указывающая запрошенные типы доступа для этого объекта каталога. Вызывающий объект может указать одно или сочетание следующих значений.
Флаги DesiredAccess | Значение |
---|---|
DIRECTORY_QUERY | Запрос доступа к объекту каталога |
DIRECTORY_TRAVERSE | Доступ к объекту каталога с поиском имен |
DIRECTORY_CREATE_OBJECT | Доступ к объекту каталога по созданию имен |
DIRECTORY_CREATE_SUBDIRECTORY | Доступ к объекту каталога в подкаталоге |
DIRECTORY_ALL_ACCESS | Все предыдущие права и STANDARD_RIGHTS_REQUIRED. |
Эти запрошенные типы доступа сравниваются со списком управления доступом для объекта (DACL), чтобы определить, какие права доступа предоставляются или запрещены.
[in] ObjectAttributes
Указанные атрибуты для объекта каталога, предоставленного вызывающим объектом. Этот параметр инициализирован путем вызова макроса InitializeObjectAttributes.
Возвращаемое значение
ZwOpenDirectoryObject возвращает STATUS_SUCCESS или соответствующее состояние ошибки. Ниже приведены наиболее распространенные коды состояния ошибок:
Возвращаемый код | Описание |
---|---|
|
Временный буфер, необходимый этой подпрограмме, не может быть выделен. |
|
Указанный параметр ObjectAttributes был указателем NULL, а не допустимым указателем на структуру OBJECT_ATTRIBUTES, или некоторые поля, указанные в структуре OBJECT_ATTRIBUTES, были недопустимыми. |
|
Параметр objectAttributes |
|
Параметр ObjectAttributes содержал поле ObjectName в структуре OBJECT_ATTRIBUTES, которое не удалось найти. |
|
Параметр objectAttributes |
|
Параметр objectAttributes |
Подпрограмма ZwOpenDirectoryObject вызывает исключение, если параметр DirectoryHandle является недопустимым указателем.
Замечания
ZwOpenDirectoryObject открывает существующий объект каталога и возвращает дескриптор объекту.
Подпрограмма ZwOpenDirectoryObject вызывается после макроса InitializeObjectAttributes используется для инициализации определенных атрибутов структуры OBJECT_ATTRIBUTES для открытия объекта.
Объект каталога создается с помощью подпрограммы ZwCreateDirectoryObject . Любой дескриптор, полученный путем вызова ZwOpenDirectoryObject, должен в конечном итоге быть освобожден путем вызова ZwClose.
Дополнительные сведения о безопасности и управлении доступом см. в модели безопасности Windows для разработчиков драйверов и документации по этим разделам в пакете SDK для Windows.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP |
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntdef.h, Ntifs.h, Fltkernel.h) |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI |
См. также
использование версий собственных системных служб и Zw