Funzione ZwOpenDirectoryObject (ntifs.h)

La routine ZwOpenDirectoryObject apre un oggetto directory esistente.

Sintassi

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

Parametri

[out] DirectoryHandle

Handle per l'oggetto directory appena aperto.

[in] DesiredAccess

Struttura ACCESS_MASK che specifica i tipi di accesso richiesti per questo oggetto directory. Un chiamante può specificare una o una combinazione di quanto segue.

DesiredAccess Bandiere Significato
DIRECTORY_QUERY Eseguire query sull'accesso all'oggetto directory
DIRECTORY_TRAVERSE Accesso alla ricerca del nome all'oggetto directory
DIRECTORY_CREATE_OBJECT Accesso alla creazione di nomi all'oggetto directory
DIRECTORY_CREATE_SUBDIRECTORY Accesso alla creazione di sottodirectory all'oggetto directory
DIRECTORY_ALL_ACCESS Tutti i diritti precedenti più STANDARD_RIGHTS_REQUIRED.
 

Questi tipi di accesso richiesti vengono confrontati con l'elenco DACL (Discretionary Access Control List) dell'oggetto per determinare quali accessi vengono concessi o negati.

[in] ObjectAttributes

Attributi specificati per l'oggetto directory fornito dal chiamante. Questo parametro viene inizializzato chiamando la macro InitializeObjectAttributes .

Valore restituito

ZwOpenDirectoryObject restituisce STATUS_SUCCESS o uno stato di errore appropriato. I codici di stato degli errori più comuni includono:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES
Impossibile allocare un buffer temporaneo richiesto da questa routine.
STATUS_INVALID_PARAMETER
Il parametro ObjectAttributes specificato è un puntatore NULL , non un puntatore valido a una struttura OBJECT_ATTRIBUTES o alcuni campi specificati nella struttura OBJECT_ATTRIBUTES non sono validi.
STATUS_OBJECT_NAME_INVALID
Il parametro ObjectAttributes contiene un campo ObjectName nella struttura OBJECT_ATTRIBUTES non valida perché è stata trovata una stringa vuota dopo il carattere OBJECT_NAME_PATH_SEPARATOR.
STATUS_OBJECT_NAME_NOT_FOUND
Il parametro ObjectAttributes contiene un campo ObjectName nella struttura OBJECT_ATTRIBUTES non trovata.
STATUS_OBJECT_PATH_NOT_FOUND
Il parametro ObjectAttributes contiene un campo ObjectName nella struttura OBJECT_ATTRIBUTES con un percorso oggetto che non è stato trovato.
STATUS_OBJECT_PATH_SYNTAX_BAD
Il parametro ObjectAttributes non contiene un campo RootDirectory , ma il campo ObjectName nella struttura OBJECT_ATTRIBUTES è una stringa vuota o non contiene un carattere OBJECT_NAME_PATH_SEPARATOR. Indica una sintassi non corretta per il percorso dell'oggetto.
 

La routine ZwOpenDirectoryObject genera un'eccezione se il parametro DirectoryHandle è un puntatore non valido.

Commenti

ZwOpenDirectoryObject apre un oggetto directory esistente e restituisce un handle all'oggetto .

La routine ZwOpenDirectoryObject viene chiamata dopo l'utilizzo della macro InitializeObjectAttributes per inizializzare attributi specifici della struttura OBJECT_ATTRIBUTES per l'oggetto da aprire.

Viene creato un oggetto directory usando la routine ZwCreateDirectoryObject. Qualsiasi handle ottenuto chiamando ZwOpenDirectoryObject deve essere rilasciato chiamando ZwClose.

Per altre informazioni sulla sicurezza e sul controllo di accesso, vedere Modello di sicurezza di Windows per sviluppatori di driver e la documentazione su questi argomenti in Windows SDK.

Nota Se la chiamata alla funzione ZwCreateDirectoryObject si verifica in modalità utente, è necessario usare il nome "NtCreateDirectoryObject" anziché "ZwCreateDirectoryObject".
 
Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.

Requisiti

Requisito Valore
Client minimo supportato Windows XP
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntdef.h, Ntifs.h, Fltkernel.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

ACCESS_MASK

ACL

InitializeObjectAttributes

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwClose

ZwCreateDirectoryObject