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 子代對象的參考頁面: KSFILTERFACTORY、 KSFILTER 和 KSPIN。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Microsoft Windows XP 和更新版本的作業系統和 Microsoft DirectX 8.0 和更新版本中使用。 |
標頭 | ks.h (包含 Ks.h) |