共用方式為


WDF_SYNCHRONIZATION_SCOPE列舉 (wdfobject.h)

[適用於 KMDF 和 UMDF]

WDF_SYNCHRONIZATION_SCOPE列舉型別會指定架構如何同步處理物件事件回呼函式的執行。

Syntax

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

常數

 
WdfSynchronizationScopeInvalid
值: 0x00
保留供系統使用。
WdfSynchronizationScopeInheritFromParent
架構會使用為物件的父物件指定的同步處理範圍值。 如果驅動程式未指定WDF_SYNCHRONIZATION_SCOPE型別值,則此值為預設值。
WdfSynchronizationScopeDevice
架構會同步處理驅動程式物件階層中裝置物件下所有佇列和檔案物件之事件回呼函式的執行。

此外,如果驅動程式將中斷、DPC、工作專案或定時器物件的組態結構中的 AutomaticSerialization 成員設定為 TRUE ,則架構也會同步處理該物件的回呼函式。

架構會先取得裝置物件的同步處理鎖定,再呼叫回呼函式。 因此,這些回呼函式一次執行一個。 不過,如果驅動程式建立相同類型的多個物件,但在不同的裝置物件下,其事件回呼函式可能會在多處理器系統上同時執行。
WdfSynchronizationScopeQueue
這個值只會影響佇列物件。 架構會同步處理佇列物件的事件回呼函式,以便一次只執行一個。

此外,如果驅動程式在中斷、DPC、工作專案或定時器物件或其父裝置物件底下的組態結構中將 AutomaticSerialization 設定為 TRUE ,架構也會同步處理該物件的回呼函式。

架構會先取得佇列物件的同步處理鎖定,再呼叫屬於物件的任何回呼函式。

如果驅動程式建立多個佇列物件,其事件回呼函式可能會在多處理器系統上同時執行。

針對架構 1.9 版和更新版本,驅動程式應該為個別佇列物件設定 WdfSynchronizationScopeQueue 。 若要將此範圍與舊版架構搭配使用,驅動程式必須為父裝置對象設定 WdfSynchronizationScopeQueue ,併為佇列物件設定 WdfSynchronizationScopeInheritFromParent
WdfSynchronizationScopeNone
架構不會同步處理物件的事件回呼函式,因此回呼函式可能會在多處理器系統上同時執行。

備註

驅動程式會使用WDF_SYNCHRONIZATION_SCOPE列舉型別來指定物件之WDF_OBJECT_ATTRIBUTES結構的 SynchronizationScope 成員。

您只能為下列物件指定 SynchronizationScope 值:

  • Framework 驅動程序物件
  • 架構裝置物件
  • 架構佇列物件
架構會將架構驅動程序物件的 SynchronizationScope 值設定為 WdfSynchronizationScopeNone。 它會將架構裝置對象和架構佇列物件的 SynchronizationScope 值設定為 WdfSynchronizationScopeInheritFromParent

如需驅動程式事件回呼函式同步處理的詳細資訊,請參閱 驅動程式的同步處理技術 Framework-Based 驅動程式

規格需求

需求
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfobject.h (包含 Wdf.h)

另請參閱

WDF_OBJECT_ATTRIBUTES