WDF_SYNCHRONIZATION_SCOPE列挙 (wdfobject.h)

[KMDF と UMDF に適用]

WDF_SYNCHRONIZATION_SCOPE列挙型は、フレームワークがオブジェクトのイベント コールバック関数の実行を同期する方法を指定します。

構文

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

定数

 
WdfSynchronizationScopeInvalid
値: 0x00
システム用に予約されています。
WdfSynchronizationScopeInheritFromParent
フレームワークは、オブジェクトの親オブジェクトに指定された同期スコープ値を使用します。 ドライバーがWDF_SYNCHRONIZATION_SCOPE型指定された値を指定しない場合、この値が既定値です。
WdfSynchronizationScopeDevice
フレームワークは、ドライバーのオブジェクト階層内のデバイス オブジェクトの下にあるすべてのキューおよびファイル オブジェクトのイベント コールバック関数の実行を同期します。

さらに、ドライバーが割り込み、DPC、作業項目、または同じデバイス オブジェクトの下にあるタイマー オブジェクトの構成構造で TRUE を する AutomaticSerialization メンバーを設定する場合、フレームワークも、そのオブジェクトのコールバック関数を同期します。

フレームワークは、コールバック関数を呼び出す前に、デバイス オブジェクトの同期ロックを取得します。 そのため、これらのコールバック関数は一度に 1 つずつ実行されます。 ただし、ドライバーが同じ種類の複数のオブジェクトを作成するが、異なるデバイス オブジェクトの下で、イベント コールバック関数がマルチプロセッサ システムで同時に実行される可能性があります。
WdfSynchronizationScopeQueue
この値はキュー オブジェクトにのみ影響します。 フレームワークは、キュー オブジェクトのイベント コールバック関数を同期して、一度に 1 つだけ実行するようにします。

さらに、ドライバーは、割り込み、DPC、作業項目、またはキュー オブジェクトまたはその親デバイス オブジェクトの下にあるタイマー オブジェクトの構成構造で TRUE を する automaticSerialization を 設定する場合、フレームワークも、そのオブジェクトのコールバック関数を同期します。

フレームワークは、オブジェクトに属するコールバック関数を呼び出す前に、キュー オブジェクトの同期ロックを取得します。

ドライバーが複数のキュー オブジェクトを作成する場合、イベント コールバック関数がマルチプロセッサ システムで同時に実行される可能性があります。

フレームワーク バージョン 1.9 以降の場合、ドライバーは個々のキュー オブジェクト WdfSynchronizationScopeQueue を設定する必要があります。 以前のバージョンのフレームワークでこのスコープを使用するには、ドライバーで親デバイス オブジェクトの WdfSynchronizationScopeQueue 設定し、キュー オブジェクトの WdfSynchronizationScopeInheritFromParent を する必要があります。
WdfSynchronizationScopeNone
フレームワークはオブジェクトのイベント コールバック関数を同期しないため、コールバック関数はマルチプロセッサ システムで同時に実行される可能性があります。

注釈

ドライバーは、WDF_SYNCHRONIZATION_SCOPE列挙型を使用して、オブジェクトの WDF_OBJECT_ATTRIBUTES 構造体の SynchronizationScope メンバーを指定します。

SynchronizationScope 値は、次のオブジェクトにのみ指定できます。

  • フレームワーク ドライバー オブジェクト
  • フレームワーク デバイス オブジェクト
  • フレームワーク キュー オブジェクト
フレームワークは、フレームワーク ドライバー オブジェクトの SynchronizationScope 値を WdfSynchronizationScopeNone に設定します。 フレームワーク デバイス オブジェクトとフレームワーク キュー オブジェクトの SynchronizationScope 値を WdfSynchronizationScopeInheritFromParent に設定します。

ドライバーのイベント コールバック関数の同期の詳細については、「Framework-Based ドライバーの同期手法 を参照してください。

必要条件

要件 価値
最小 KMDF バージョン 1.0
UMDF の最小バージョン を する 2.0
ヘッダー wdfobject.h (Wdf.h を含む)

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES