次の方法で共有


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