WDF_SYNCHRONIZATION_SCOPE-Enumeration (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
Ist für das System reserviert.
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 WDF_SYNCHRONIZATION_SCOPE typisierten Wert 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 den AutomaticSerialization-Member in der Konfigurationsstruktur für ein Interrupt-, DPC-, Arbeitselement- oder Timerobjekt unter demselben Geräteobjekt auf TRUE festlegt, synchronisiert das Framework außerdem 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 einzeln ausgeführt. Wenn der Treiber jedoch mehrere Objekte desselben Typs erstellt, aber unter unterschiedlichen Geräteobjekten, können ihre Ereignisrückruffunktionen 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 in der Konfigurationsstruktur für ein Interrupt-, DPC-, Arbeitselement- oder Timerobjekt unter dem Warteschlangenobjekt oder dem übergeordneten Geräteobjekt auf TRUE festlegt, synchronisiert das Framework außerdem 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 ihre Ereignisrückruffunktionen möglicherweise gleichzeitig auf einem Mehrprozessorsystem 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.

Hinweise

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
  • Frameworkgeräteobjekte
  • Frameworkwarteschlangenobjekte
Das Framework legt den SynchronizationScope-Wert von Frameworktreiberobjekten auf WdfSynchronizationScopeNone fest. Der SynchronizationScope-Wert für Frameworkgeräteobjekte und Frameworkwarteschlangenobjekte wird auf WdfSynchronizationScopeInheritFromParent festgelegt.

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

Anforderungen

Anforderung Wert
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfobject.h (einschließen von Wdf.h)

Weitere Informationen

WDF_OBJECT_ATTRIBUTES