é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 synchronise l’exécution des fonctions de rappel d’événement d’un objet.

Syntax

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

Constantes

 
WdfSynchronizationScopeInvalid
Réservé pour le système.
WdfSynchronizationScopeInheritFromParent
L’infrastructure utilise la valeur d’étendue de synchronisation 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 WDF_SYNCHRONIZATION_SCOPE typée.
WdfSynchronizationScopeDevice
L’infrastructure synchronise l’exécution des fonctions de rappel d’événement de tous les objets de file d’attente et de fichier sous un objet d’appareil 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 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 à la fois. Toutefois, si le pilote crée plusieurs objets du même type, mais sous différents objets d’appareil, 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 la valeur TRUE dans la structure de configuration d’un objet d’interruption, DPC, élément de travail ou minuteur qui se trouve sous l’objet de file d’attente ou de son objet d’appareil 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énements peuvent s’exécuter simultanément sur un système multiprocesseur.

Pour les versions 1.9 et ultérieures de l’infrastructure, un pilote doit définir WdfSynchronizationScopeQueue pour les objets de file d’attente individuels. Pour utiliser cette étendue avec les versions antérieures de l’infrastructure, le pilote doit définir WdfSynchronizationScopeQueue pour l’objet d’appareil parent et WdfSynchronizationScopeInheritFromParent pour l’objet 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 pour uniquement les objets suivants :

  • Objets de pilote d’infrastructure
  • Objets d’appareil framework
  • Objets de file d’attente d’infrastructure
L’infrastructure définit la valeur SyncScope des objets de pilote d’infrastructure sur WdfSynchronizationScopeNone. Elle définit la valeur SyncScope 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 Framework-Based pilotes.

Configuration requise

   
Version KMDF minimale 1.0
Version UMDF minimale 2,0
En-tête wdfobject.h (inclure Wdf.h)

Voir aussi

WDF_OBJECT_ATTRIBUTES