Freigeben über


WDF_SYNCHRONIZATION_SCOPE-Aufzählung (wdfobject.h)

[Gilt für KMDF und UMDF]

Der WDF_SYNCHRONIZATION_SCOPE Enumerationstyp gibt an, wie das Framework die Ausführung der Ereignisrückruffunktionen eines Objekts synchronisiert.

Syntax

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

Konstanten

 
WdfSynchronizationScopeInvalid
Wert: 0x00
Reserviert für die Systemverwendung.
WdfSynchronizationScopeInheritFromParent
Das Framework verwendet den Synchronisierungsbereichswert, der für das übergeordnete Objekt des Objekts angegeben wurde. Dieser Wert ist der Standardwert, wenn ein Treiber keinen wert vom Typ WDF_SYNCHRONIZATION_SCOPE angibt.
WdfSynchronizationScopeDevice
Das Framework synchronisiert die Ausführung der Ereignisrückruffunktionen aller Warteschlangen- und Dateiobjekte, die sich unter einem Geräteobjekt in der Objekthierarchie des Treibers befinden.

Wenn der Treiber die AutomaticSerialization Member auf TRUE- in der Konfigurationsstruktur für ein Interrupt-, DPC-, Arbeitselement- oder Zeitgeberobjekt festlegt, das sich unter demselben Geräteobjekt befindet, synchronisiert das Framework auch die Rückruffunktionen dieses Objekts.

Das Framework ruft die Synchronisierungssperre des Geräteobjekts ab, bevor eine Rückruffunktion aufgerufen wird. Daher werden diese Rückruffunktionen jeweils einzeln ausgeführt. Wenn der Treiber jedoch mehrere Objekte desselben Typs erstellt, aber unter verschiedenen Geräteobjekten kann die Ereignisrückruffunktion gleichzeitig auf einem Multiprozessorsystem ausgeführt werden.
WdfSynchronizationScopeQueue
Dieser Wert wirkt sich nur auf Warteschlangenobjekte aus. Das Framework synchronisiert die Ereignisrückruffunktionen des Warteschlangenobjekts, sodass jeweils nur eine ausgeführt wird.

Wenn der Treiber AutomaticSerialization auf TRUE- in der Konfigurationsstruktur für ein Interrupt-, DPC-, Arbeitselement- oder Zeitgeberobjekt festlegt, das sich unter dem Warteschlangenobjekt oder dem übergeordneten Geräteobjekt befindet, synchronisiert das Framework auch die Rückruffunktionen dieses Objekts.

Das Framework ruft die Synchronisierungssperre des Warteschlangenobjekts ab, bevor alle Rückruffunktionen aufgerufen werden, die zum Objekt gehören.

Wenn der Treiber mehrere Warteschlangenobjekte erstellt, werden die Ereignisrückruffunktionen möglicherweise gleichzeitig auf einem Multiprozessorsystem ausgeführt.

Für Frameworkversionen 1.9 und höher sollte ein Treiber WdfSynchronizationScopeQueue- für einzelne Warteschlangenobjekte festlegen. Um diesen Bereich mit früheren Versionen des Frameworks zu verwenden, muss der Treiber WdfSynchronizationScopeQueue- für das übergeordnete Geräteobjekt und WdfSynchronizationScopeInheritFromParent für das Warteschlangenobjekt festlegen.
WdfSynchronizationScopeNone
Das Framework synchronisiert die Ereignisrückruffunktionen des Objekts nicht, sodass die Rückruffunktionen möglicherweise gleichzeitig auf einem Multiprozessorsystem ausgeführt werden.

Bemerkungen

Treiber verwenden den WDF_SYNCHRONIZATION_SCOPE Enumerationstyp, um das SynchronizationScope Element der WDF_OBJECT_ATTRIBUTES Struktur eines Objekts anzugeben.

Sie können einen SynchronizationScope- Wert nur für die folgenden Objekte angeben:

  • Frameworktreiberobjekte
  • Framework-Geräteobjekte
  • Framework-Warteschlangenobjekte
Das Framework legt den SynchronizationScope- Wert von Frameworktreiberobjekten auf WdfSynchronizationScopeNonefest. Es legt den SynchronizationScope Wert von Framework-Geräteobjekten und Framework-Warteschlangenobjekten auf WdfSynchronizationScopeInheritFromParent.

Weitere Informationen zur Synchronisierung der Ereignisrückruffunktionen eines Treibers finden Sie unter Synchronisierungstechniken für Framework-Based Treiber.

Anforderungen

Anforderung Wert
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfobject.h (einschließen Wdf.h)

Siehe auch

WDF_OBJECT_ATTRIBUTES