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 値は、次のオブジェクトにのみ指定できます。

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

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

要件

要件
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfobject.h (Wdf.h を含む)

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES