ZwOpenDirectoryObject, fonction (ntifs.h)
La routine ZwOpenDirectoryObject ouvre un objet de répertoire existant.
Syntaxe
NTSYSAPI NTSTATUS ZwOpenDirectoryObject(
[out] PHANDLE DirectoryHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
Paramètres
[out] DirectoryHandle
Handle pour l’objet de répertoire nouvellement ouvert.
[in] DesiredAccess
Structure ACCESS_MASK spécifiant les types d’accès demandés pour cet objet d’annuaire. Un appelant peut spécifier une ou une combinaison des éléments suivants.
indicateurs de DesiredAccess | Signification |
---|---|
DIRECTORY_QUERY | Interroger l’accès à l’objet de répertoire |
DIRECTORY_TRAVERSE | Accès à la recherche de noms à l’objet de répertoire |
DIRECTORY_CREATE_OBJECT | Accès à la création de noms à l’objet d’annuaire |
DIRECTORY_CREATE_SUBDIRECTORY | Accès de création de sous-répertoire à l’objet d’annuaire |
DIRECTORY_ALL_ACCESS | Tous les droits précédents plus STANDARD_RIGHTS_REQUIRED. |
Ces types d’accès demandés sont comparés à la liste de contrôle d’accès discrétionnaire de l’objet (DACL) pour déterminer quels accès sont accordés ou refusés.
[in] ObjectAttributes
Attributs spécifiés pour l’objet de répertoire fourni par l’appelant. Ce paramètre est initialisé en appelant la macro InitializeObjectAttributes.
Valeur de retour
ZwOpenDirectoryObject retourne STATUS_SUCCESS ou un état d’erreur approprié. Les codes d’état d’erreur les plus courants sont les suivants :
Retourner le code | Description |
---|---|
|
Impossible d’allouer une mémoire tampon temporaire requise par cette routine. |
|
Le paramètre |
|
Le paramètre ObjectAttributes contenait un champ ObjectName dans la structure OBJECT_ATTRIBUTES qui n’était pas valide, car une chaîne vide a été trouvée après le caractère OBJECT_NAME_PATH_SEPARATOR. |
|
Le paramètre ObjectAttributes contenait un champ ObjectName dans la structure OBJECT_ATTRIBUTES introuvable. |
|
Le paramètre ObjectAttributes contenait un champ ObjectName dans la structure OBJECT_ATTRIBUTES avec un chemin d’accès d’objet introuvable. |
|
Le paramètre ObjectAttributes |
La routine ZwOpenDirectoryObject lève une exception si le paramètre DirectoryHandle est un pointeur illégal.
Remarques
ZwOpenDirectoryObject ouvre un objet de répertoire existant et retourne un handle à l’objet.
La routine ZwOpenDirectoryObject est appelée après l’ouverture de la macro InitializeObjectAttributes pour initialiser des attributs spécifiques de la structure OBJECT_ATTRIBUTES de l’objet à ouvrir.
Un objet de répertoire est créé à l’aide de la routineZwCreateDirectoryObject . Tout handle obtenu en appelant ZwOpenDirectoryObject doit finalement être libéré en appelant ZwClose.
Pour plus d’informations sur la sécurité et le contrôle d’accès, consultez modèle de sécurité Windows pour les développeurs de pilotes et la documentation sur ces rubriques dans le Kit de développement logiciel (SDK) Windows.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntdef.h, Ntifs.h, Fltkernel.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
Voir aussi
à l’aide de versions Nt et Zw des routines natives des services système