Condividi tramite


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.

flag DesiredAccess 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 di controllo di accesso discrezionale dell'oggetto (DACL) 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 quanto segue:

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 NULL, non un puntatore valido a una struttura OBJECT_ATTRIBUTES o alcuni dei 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 che non è stato trovato.
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 errata per il percorso dell'oggetto.
 

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

Osservazioni

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

La routine ZwOpenDirectoryObject viene chiamata dopo l'InitializeObjectAttributes macro viene utilizzata 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 di ZwCreateDirectoryObject si verifica in modalità utente, è consigliabile usare il nome "NtCreateDirectoryObject" anziché "ZwCreateDirectoryObject".
 
Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services 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.

Fabbisogno

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)

Vedere anche

ACCESS_MASK

ACL

InitializeObjectAttributes

uso di versioni Nt e Zw delle routine di Servizi di sistema nativi

ZwClose

ZwCreateDirectoryObject