次の方法で共有


KSDEVICE 構造体 (ks.h)

KSDEVICE 構造体は、AVStream によって管理される WDM 機能デバイスを記述します。

構文

typedef struct _KSDEVICE {
  const KSDEVICE_DESCRIPTOR *Descriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
  PDEVICE_OBJECT            FunctionalDeviceObject;
  PDEVICE_OBJECT            PhysicalDeviceObject;
  PDEVICE_OBJECT            NextDeviceObject;
  BOOLEAN                   Started;
  SYSTEM_POWER_STATE        SystemPowerState;
  DEVICE_POWER_STATE        DevicePowerState;
} KSDEVICE, *PKSDEVICE;

メンバーズ

Descriptor

デバイスの特性とデバイスでサポートされる静的フィルターを記述する KSDEVICE_DESCRIPTOR 構造体へのポインター。

Bag

このメンバーは、デバイスに関連付けられているKSOBJECT_BAG (PVOID 型と同等) を指定します。 オブジェクト バッグ を参照してください。

Context

デバイスのコンテキスト情報を含むメモリ位置へのポインター。 AVStream は、AVStrMiniDeviceStart でデバイス拡張機能を割り当てるミニドライバーのデバイス拡張機能へのポインターこのメンバーに格納します。 コンテキストに割り当てられたメモリは、KsAddItemToObjectBagを使用してオブジェクト バッグに配置する必要があります。 コンテキスト は、作成時に NULL するように初期化されます。

FunctionalDeviceObject

記述されているデバイスの WDM 機能デバイス オブジェクトである DEVICE_OBJECT 構造体へのポインター。

PhysicalDeviceObject

記述されているデバイスの WDM 物理デバイス オブジェクトである DEVICE_OBJECT 構造体へのポインター。

NextDeviceObject

IoAttachDeviceToDeviceStackによって決定される、ドライバー スタック内の次のデバイスである DEVICE_OBJECT 構造体へのポインター。

Started

このメンバーは、この特定のデバイスが起動されているかどうかを示します。 TRUE 場合、デバイスは起動されています。 FALSE 場合、デバイスは起動されていません。 このフラグは、IRP_MN_START_DEVICE の処理中に設定され、IRP_MN_STOP_DEVICEの処理中にリセットされます。 起動されていないデバイスは、フィルターを作成するすべての要求に応答してSTATUS_DEVICE_NOT_READYを返します。

SystemPowerState

システムの現在の電源状態を示すSYSTEM_POWER_STATE型指定された値。 SYSTEM_POWER_STATE値は、wdm.hで定義されます。

DevicePowerState

デバイスの現在の電源状態を示すDEVICE_POWER_STATE型指定の値。 DEVICE_POWER_STATE値は、wdm.hで定義されます。

備考

通常、クライアントは、AVStream によって提供されない特定の PnP または電源管理動作を実装する必要がある場合に、この構造体を使用します。 KSDEVICE 構造体へのポインターは、KSDEVICE_DISPATCHで指定されたすべてのディスパッチ ルーチンの最初のパラメーターであり、クライアントはコンテキスト情報を自由に使用して、これらのルーチンの独自のコンテキストをアタッチします。 さらに、クライアントは、KsGetDeviceForDeviceObjectを呼び出すことによって、WDM デバイス オブジェクト ポインターから KSDEVICE 構造体へのポインターを取得できます。

前述のように、コンテキスト は、作成時に NULL するように初期化されます。 ただし、この KSDEVICE 構造体の子孫には、対応する Context メンバーが親オブジェクトの Context メンバーの値に設定されます。 これは、新しいオブジェクトが作成されるときに発生します。 詳細については、「AVStream オブジェクト階層 およびオブジェクト バッグ する」を参照してください。 また、可能な AVStream 子孫オブジェクトのリファレンス ページを参照してください。 KSFILTERFACTORYKSFILTER、および KSPIN します。

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows XP 以降のオペレーティング システムおよび Microsoft DirectX 8.0 以降のバージョンで使用できます。
ヘッダー ks.h (Ks.h を含む)

関連項目

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER する

KSFILTERFACTORY

KSPIN する

KsAddItemToObjectBag

KsGetDeviceForDeviceObject