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 子孫オブジェクト (KSFILTERFACTORY、KSFILTERKSPIN) のリファレンス ページも参照してください。

要件

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

こちらもご覧ください

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject