Función ZwOpenDirectoryObject (ntifs.h)
La rutina ZwOpenDirectoryObject abre un objeto de directorio existente.
Sintaxis
NTSYSAPI NTSTATUS ZwOpenDirectoryObject(
[out] PHANDLE DirectoryHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
Parámetros
[out] DirectoryHandle
Identificador del objeto de directorio recién abierto.
[in] DesiredAccess
Estructura ACCESS_MASK que especifica los tipos de acceso solicitados que se solicitan para este objeto de directorio. Un llamador puede especificar una o una combinación de lo siguiente.
DesiredAccess Banderas | Significado |
---|---|
DIRECTORY_QUERY | Consulta del acceso al objeto de directorio |
DIRECTORY_TRAVERSE | Acceso de búsqueda de nombres al objeto de directorio |
DIRECTORY_CREATE_OBJECT | Acceso de creación de nombres al objeto de directorio |
DIRECTORY_CREATE_SUBDIRECTORY | Acceso de creación de subdirectorios al objeto de directorio |
DIRECTORY_ALL_ACCESS | Todos los derechos anteriores más STANDARD_RIGHTS_REQUIRED. |
Estos tipos de acceso solicitados se comparan con la lista de control de acceso discrecional (DACL) del objeto para determinar qué accesos se conceden o deniegan.
[in] ObjectAttributes
Atributos especificados para el objeto de directorio proporcionado por el autor de la llamada. Este parámetro se inicializa mediante una llamada a la macro InitializeObjectAttributes .
Valor devuelto
ZwOpenDirectoryObject devuelve STATUS_SUCCESS o un estado de error adecuado. Los códigos de estado de error más comunes son los siguientes:
Código devuelto | Descripción |
---|---|
|
No se pudo asignar un búfer temporal requerido por esta rutina. |
|
El parámetro ObjectAttributes especificado era un puntero NULL , no un puntero válido a una estructura de OBJECT_ATTRIBUTES o algunos de los campos especificados en la estructura OBJECT_ATTRIBUTES no eran válidos. |
|
El parámetro ObjectAttributes contenía un campo ObjectName en la estructura OBJECT_ATTRIBUTES que no era válida porque se encontró una cadena vacía después del carácter OBJECT_NAME_PATH_SEPARATOR. |
|
El parámetro ObjectAttributes contenía un campo ObjectName en la estructura OBJECT_ATTRIBUTES que no se encontró. |
|
El parámetro ObjectAttributes contenía un campo ObjectName en la estructura OBJECT_ATTRIBUTES con una ruta de acceso de objeto que no se encontró. |
|
El parámetro ObjectAttributes no contenía un campo RootDirectory , pero el campo ObjectName de la estructura OBJECT_ATTRIBUTES era una cadena vacía o no contenía un carácter de OBJECT_NAME_PATH_SEPARATOR. Esto indica una sintaxis incorrecta para la ruta de acceso del objeto. |
La rutina ZwOpenDirectoryObject produce una excepción si el parámetro DirectoryHandle es un puntero no válido.
Comentarios
ZwOpenDirectoryObject abre un objeto de directorio existente y devuelve un identificador al objeto .
Se llama a la rutina ZwOpenDirectoryObject después de que se use la macro InitializeObjectAttributes para inicializar atributos específicos de la estructura OBJECT_ATTRIBUTES para que se abra el objeto.
Se crea un objeto de directorio mediante la rutina ZwCreateDirectoryObject. Cualquier identificador obtenido llamando a ZwOpenDirectoryObject finalmente debe liberarse llamando a ZwClose.
Para obtener más información sobre la seguridad y el control de acceso, consulte Modelo de seguridad de Windows para desarrolladores de controladores y la documentación sobre estos temas en Windows SDK.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP |
Plataforma de destino | Universal |
Encabezado | ntifs.h (include Ntdef.h, Ntifs.h, Fltkernel.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |
Consulte también
Uso de las versiones Nt y Zw de las rutinas nativas de System Services
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de