Partager via


WdfSpinLockCreate, fonction (wdfsync.h)

[S’applique à KMDF et UMDF]

La méthode WdfSpinLockCreate crée un objet de spin-lock d’infrastructure.

Syntaxe

NTSTATUS WdfSpinLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
  [out]          WDFSPINLOCK            *SpinLock
);

Paramètres

[in, optional] SpinLockAttributes

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

[out] SpinLock

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

Valeur retournée

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

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

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

Remarques

La méthode WdfSpinLockCreate crée un objet de spin-lock d’infrastructure. Après avoir créé un objet spin-lock, un pilote peut appeler WdfSpinLockAcquire pour acquérir le verrou et WdfSpinLockRelease pour libérer le verrou.

Par défaut, le parent du nouvel objet spin-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 spin-lock lorsqu’il supprime l’objet parent. Si votre pilote ne modifie pas le parent par défaut, il doit supprimer l’objet spin-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 de rotation, 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 de rotation sera un objet d’appareil et appelle WdfSpinLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
                           &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), WdfSpinlock(kmdf)

Voir aussi

WDF_OBJECT_ATTRIBUTES

WdfDriverCréer

WdfSpinLockAcquire

WdfSpinLockRelease

Règle WdfSpinlock (KMDF)

Règle WdfSpinLockRelease (KMDF)