Partager via


énumération WDF_SYNCHRONIZATION_SCOPE (wdfobject.h)

[S’applique à KMDF et UMDF]

Le type d’énumération WDF_SYNCHRONIZATION_SCOPE spécifie comment l’infrastructure synchronisera l’exécution des fonctions de rappel d’événement d’un objet.

Syntax

typedef enum _WDF_SYNCHRONIZATION_SCOPE {
  WdfSynchronizationScopeInvalid = 0x00,
  WdfSynchronizationScopeInheritFromParent,
  WdfSynchronizationScopeDevice,
  WdfSynchronizationScopeQueue,
  WdfSynchronizationScopeNone
} WDF_SYNCHRONIZATION_SCOPE;

Constantes

 
WdfSynchronizationScopeInvalid
Valeur : 0x00
Réservé pour le système.
WdfSynchronizationScopeInheritFromParent
L’infrastructure utilise la valeur d’étendue de synchronisation qui a été spécifiée pour l’objet parent de l’objet. Cette valeur est la valeur par défaut si un pilote ne spécifie pas de valeur de type WDF_SYNCHRONIZATION_SCOPE.
WdfSynchronizationScopeDevice
L’infrastructure synchronise l’exécution des fonctions de rappel d’événement de tous les objets file d’attente et fichier qui se trouvent sous un objet de périphérique dans la hiérarchie d’objets du pilote.

En outre, si le pilote définit le membre AutomaticSerialization sur TRUE dans la structure de configuration pour un objet d’interruption, DPC, élément de travail ou minuteur qui se trouve sous le même objet d’appareil, l’infrastructure synchronise également les fonctions de rappel de cet objet.

L’infrastructure obtient le verrou de synchronisation de l’objet d’appareil avant d’appeler une fonction de rappel. Par conséquent, ces fonctions de rappel s’exécutent une par une. Toutefois, si le pilote crée plusieurs objets du même type, mais sous des objets de périphérique différents, leurs fonctions de rappel d’événement peuvent s’exécuter simultanément sur un système multiprocesseur.
WdfSynchronizationScopeQueue
Cette valeur affecte uniquement les objets de file d’attente. L’infrastructure synchronise les fonctions de rappel d’événement de l’objet file d’attente afin qu’une seule s’exécute à la fois.

En outre, si le pilote définit AutomaticSerialization sur TRUE dans la structure de configuration pour un objet d’interruption, DPC, élément de travail ou minuteur qui se trouve sous l’objet file d’attente ou son objet de périphérique parent, l’infrastructure synchronise également les fonctions de rappel de cet objet.

L’infrastructure obtient le verrou de synchronisation de l’objet file d’attente avant d’appeler les fonctions de rappel qui appartiennent à l’objet .

Si le pilote crée plusieurs objets de file d’attente, leurs fonctions de rappel d’événement peuvent s’exécuter simultanément sur un système multiprocesseur.

Pour les versions de framework 1.9 et ultérieures, un pilote doit définir WdfSynchronizationScopeQueue pour les objets de file d’attente individuels. Pour utiliser cette étendue avec des versions antérieures de l’infrastructure, le pilote doit définir WdfSynchronizationScopeQueue pour l’objet de périphérique parent et WdfSynchronizationScopeInheritFromParent pour l’objet de file d’attente.
WdfSynchronizationScopeNone
L’infrastructure ne synchronise pas les fonctions de rappel d’événement de l’objet, de sorte que les fonctions de rappel peuvent s’exécuter simultanément sur un système multiprocesseur.

Remarques

Les pilotes utilisent le type d’énumération WDF_SYNCHRONIZATION_SCOPE pour spécifier le membre SynchronizationScope de la structure WDF_OBJECT_ATTRIBUTES d’un objet.

Vous pouvez spécifier une valeur SynchronizationScope uniquement pour les objets suivants :

  • Objets du pilote d’infrastructure
  • Objets d’appareil framework
  • Objets de file d’attente d’infrastructure
L’infrastructure définit la valeur SynchronizationScope des objets de pilote d’infrastructure sur WdfSynchronizationScopeNone. Il définit la valeur SynchronizationScope des objets d’appareil d’infrastructure et des objets de file d’attente d’infrastructure sur WdfSynchronizationScopeInheritFromParent.

Pour plus d’informations sur la synchronisation des fonctions de rappel d’événements d’un pilote, consultez Techniques de synchronisation pour les pilotes Framework-Based.

Configuration requise

Condition requise Valeur
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfobject.h (inclure Wdf.h)

Voir aussi

WDF_OBJECT_ATTRIBUTES