Partager via


WdfWaitLockCreate, fonction (wdfsync.h)

[S’applique à KMDF et UMDF]

La méthode WdfWaitLockCreate crée un objet de verrouillage d’attente d’infrastructure.

Syntaxe

NTSTATUS WdfWaitLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
  [out]          WDFWAITLOCK            *Lock
);

Paramètres

[in, optional] LockAttributes

Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui spécifie les attributs de l’objet wait-lock. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.

[out] Lock

Pointeur vers un emplacement qui reçoit un handle vers un nouvel objet de verrouillage d’attente d’infrastructure.

Valeur retournée

WdfWaitLockCreate retourne STATUS_SUCCESS si l’opération réussit.

Pour obtenir la liste des autres valeurs de retour que la méthode WdfWaitLockCreate peut retourner, consultez Erreurs de création d’objet Framework.

Cette méthode peut également retourner d’autres valeurs NTSTATUS.

Remarques

La méthode WdfWaitLockCreate crée un objet de verrouillage d’attente d’infrastructure. Après avoir créé un objet wait-lock, un pilote peut appeler WdfWaitLockAcquire pour acquérir le verrou et WdfWaitLockRelease pour libérer le verrou.

Par défaut, le parent du nouvel objet wait-lock est l’objet de pilote d’infrastructure créé par la méthode WdfDriverCreate . Vous pouvez utiliser le membre ParentObject de la structure WDF_OBJECT_ATTRIBUTES pour spécifier un autre parent. L’infrastructure supprime l’objet wait-lock lorsqu’il supprime l’objet parent. Si votre pilote ne modifie pas le parent par défaut, il doit supprimer l’objet wait-lock lorsqu’il a terminé d’utiliser l’objet ; sinon, l’objet restera jusqu’à ce que le gestionnaire d’E/S décharge votre pilote.

Pour plus d’informations sur les verrous d’attente, consultez Techniques de synchronisation pour les pilotes Framework-Based.

Exemples

L’exemple de code suivant initialise un WDF_OBJECT_ATTRIBUTES, spécifie que l’objet parent du verrou d’attente sera un objet d’appareil et appelle WdfWaitLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfWaitLockCreate(
                           &attributes,
                           &lockHandle
                           );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfsync.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf)

Voir aussi

WDF_OBJECT_ATTRIBUTES

WdfDriverCréer

WdfWaitLockAcquire

WdfWaitLockRelease