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 |
---|---|
|
Impossibile allocare un buffer temporaneo richiesto da questa routine. |
|
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. |
|
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. |
|
Il parametro ObjectAttributes contiene un campo ObjectName nella struttura OBJECT_ATTRIBUTES non trovata. |
|
Il parametro ObjectAttributes contiene un campo ObjectName nella struttura OBJECT_ATTRIBUTES con un percorso oggetto che non è stato trovato. |
|
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.
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
Uso delle versioni Nt e Zw delle routine native di Servizi di sistema