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

此成員會指定與裝置相關聯之 PVOID) 類型相等的KSOBJECT_BAG (。 請參閱 物件包

Context

記憶體位置的指標,其中包含裝置的內容資訊。 AVStream 會將裝置延伸模組的指標儲存在此成員中,供 在AVStrMiniDeviceStart中配置裝置擴充功能的迷你驅動程式使用。 配置給內容的記憶體應該使用 KsAddItemToObjectBag 放置在物件包中。 內容 會在建立時初始化為 NULL

FunctionalDeviceObject

DEVICE_OBJECT 結構的指標,這是所描述裝置的 WDM 功能裝置物件。

PhysicalDeviceObject

所描述裝置之 WDM 實體裝置物件的 DEVICE_OBJECT 結構的指標。

NextDeviceObject

DEVICE_OBJECT 結構的指標,這是 IoAttachDeviceToDeviceStack 所決定的驅動程式堆疊中下一個裝置。

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 結構的指標。

如上所述, Context 會在建立時初始化為 NULL 。 不過,這個 KSDEVICE 結構的子系會將其對應的 Context 成員設定為父物件的 Context 成員的值。 這會在建立新物件時發生。 如需詳細資訊,請參閱 AVStream物件階層物件包。 另請參閱可能 AVStream 子代對象的參考頁面: KSFILTERFACTORYKSFILTERKSPIN

規格需求

需求
最低支援的用戶端 可在 Microsoft Windows XP 和更新版本的作業系統和 Microsoft DirectX 8.0 和更新版本中使用。
標頭 ks.h (包含 Ks.h)

另請參閱

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject