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、作業項目、またはタイマー オブジェクトの構成構造で、ドライバーが AutomaticSerialization メンバーを TRUE に 設定した場合、フレームワークは、そのオブジェクトのコールバック関数も同期します。 フレームワークは、コールバック関数を呼び出す前に、デバイス オブジェクトの同期ロックを取得します。 したがって、これらのコールバック関数は一度に 1 つずつ実行されます。 ただし、ドライバーが同じ種類の複数のオブジェクトを作成するが、異なるデバイス オブジェクトの下で、イベント コールバック関数がマルチプロセッサ システムで同時に実行される可能性があります。 |
WdfSynchronizationScopeQueue この値はキュー オブジェクトにのみ影響します。 フレームワークは、キュー オブジェクトのイベント コールバック関数を同期して、一度に 1 つだけを実行します。 さらに、ドライバーが割り込み、DPC、作業項目、またはキュー オブジェクトまたはその親デバイス オブジェクトの下にあるタイマー オブジェクトの構成構造で AutomaticSerializationを TRUE に 設定する場合、フレームワークは、そのオブジェクトのコールバック関数も同期します。 フレームワークは、オブジェクトに属するコールバック関数を呼び出す前に、キュー オブジェクトの同期ロックを取得します。 ドライバーが複数のキュー オブジェクトを作成する場合、イベント コールバック関数はマルチプロセッサ システムで同時に実行される可能性があります。 フレームワーク バージョン 1.9 以降の場合、ドライバーは個々のキュー オブジェクトに 対して WdfSynchronizationScopeQueue を設定する必要があります。 以前のバージョンのフレームワークでこのスコープを使用するには、ドライバーで親デバイス オブジェクトに WdfSynchronizationScopeQueue を設定し、キュー オブジェクトに WdfSynchronizationScopeInheritFromParent を設定する必要があります。 |
WdfSynchronizationScopeNone フレームワークはオブジェクトのイベント コールバック関数を同期しないため、コールバック関数はマルチプロセッサ システムで同時に実行される可能性があります。 |
注釈
ドライバーは、WDF_SYNCHRONIZATION_SCOPE列挙型を使用して、オブジェクトのWDF_OBJECT_ATTRIBUTES構造体の SynchronizationScope メンバー を 指定します。
SynchronizationScope 値は、次のオブジェクトにのみ指定できます。
- フレームワーク ドライバー オブジェクト
- フレームワーク デバイス オブジェクト
- フレームワーク キュー オブジェクト
ドライバーのイベント コールバック関数の同期の詳細については、「 Framework-Based ドライバーの同期手法」を参照してください。
要件
要件 | 値 |
---|---|
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfobject.h (Wdf.h を含む) |