Partager via


Fonction ZwCreateDirectoryObject (wdm.h)

La routine ZwCreateDirectoryObject crée ou ouvre un objet object-directory.

Syntaxe

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

Paramètres

[out] DirectoryHandle

Pointeur vers une variable HANDLE qui reçoit un handle vers le répertoire d’objets.

[in] DesiredAccess

Spécifie une valeur ACCESS_MASK qui détermine l’accès demandé à l’objet. Outre les droits d’accès définis pour tous les types d’objets (voir ACCESS_MASK), l’appelant peut spécifier un ou plusieurs des droits d’accès suivants, qui sont spécifiques aux répertoires d’objets :

indicateur ACCESS_MASK Type d’accès
DIRECTORY_QUERY Requête
DIRECTORY_TRAVERSE Recherche de nom
DIRECTORY_CREATE_OBJECT Création de noms
DIRECTORY_CREATE_SUBDIRECTORY Création de sous-répertoire
DIRECTORY_ALL_ACCESS Tous les types précédents

[in] ObjectAttributes

Pointeur vers une structure OBJECT_ATTRIBUTES qui contient les attributs de l’objet, que vous devez avoir déjà initialisés en appelant InitializeObjectAttributes.

Valeur retournée

ZwCreateDirectoryObject retourne une valeur NTSTATUS. Les valeurs de retour possibles sont les suivantes :

Remarques

Une fois que le handle pointé par DirectoryHandle n’est plus utilisé, le pilote doit appeler ZwClose pour le fermer.

Si l’appelant n’est pas en cours d’exécution dans un contexte de thread système, il doit s’assurer que tous les handles qu’il crée sont des handles privés. Sinon, le handle est accessible par le processus dans lequel le pilote est en cours d’exécution. Pour plus d’informations, consultez Handles d’objet.

Le système utilise des répertoires d’objets pour organiser d’autres types d’objets, tels que des objets d’appareil. Pour plus d’informations, consultez Répertoires d’objets.

Le système n’utilise pas d’objets de répertoire d’objets pour représenter des répertoires de système de fichiers, qui sont plutôt représentés en tant qu’objets de fichier.

Si l’appel à cette fonction se produit en mode utilisateur, vous devez utiliser le nom « NtCreateDirectoryObject » au lieu de « ZwCreateDirectoryObject ».

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Utilisation des versions Nt et Zw des routines des services système natifs.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),PowerIrpDDis(wdm)

Voir aussi

ACCESS_MASK

InitializeObjectAttributes

Utilisation des versions Nt et Zw des routines natives des services système natifs

ZwClose