KSDEVICE-Struktur (ks.h)
Die KSDEVICE-Struktur beschreibt ein funktionales WDM-Gerät, das von AVStream verwaltet wird.
Syntax
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;
Member
Descriptor
Ein Zeiger auf eine KSDEVICE_DESCRIPTOR Struktur, die die Merkmale des Geräts und die von diesem unterstützten statischen Filter beschreibt.
Bag
Dieses Element gibt die dem Gerät zugeordnete KSOBJECT_BAG (entspricht dem Typ PVOID) an. Weitere Informationen finden Sie unter Objekttaschen.
Context
Ein Zeiger auf einen Speicherspeicherort, der Kontextinformationen für das Gerät enthält. AVStream speichert einen Zeiger auf eine Geräteerweiterung in diesem Member für Minidriver, die eine Geräteerweiterung in AVStrMiniDeviceStart zuweisen. Der für den Kontext zugewiesene Arbeitsspeicher sollte mithilfe von KsAddItemToObjectBag im Objektbehälter platziert werden. Der Kontext wird zur Erstellungszeit in NULL initialisiert.
FunctionalDeviceObject
Ein Zeiger auf eine DEVICE_OBJECT Struktur, bei der es sich um das funktionale WDM-Geräteobjekt für das beschriebene Gerät handelt.
PhysicalDeviceObject
Ein Zeiger auf eine DEVICE_OBJECT Struktur, bei der es sich um das physische WDM-Geräteobjekt für das beschriebene Gerät handelt.
NextDeviceObject
Ein Zeiger auf eine DEVICE_OBJECT Struktur, die das nächste Gerät im Treiberstapel ist, wie von IoAttachDeviceToDeviceStack bestimmt.
Started
Dieses Element gibt an, ob dieses bestimmte Gerät gestartet wurde oder nicht. Bei TRUE wurde das Gerät gestartet. Wenn FALSE, wurde das Gerät nicht gestartet. Dieses Flag wird während der Verarbeitung des IRP_MN_START_DEVICE festgelegt und während der Verarbeitung des IRP_MN_STOP_DEVICE zurückgesetzt. Ein Gerät, das nicht gestartet wurde, gibt als Antwort auf alle Anforderungen zum Erstellen eines Filters STATUS_DEVICE_NOT_READY zurück.
SystemPowerState
Ein SYSTEM_POWER_STATE typisierter Wert, der den aktuellen Energiezustand des Systems angibt. SYSTEM_POWER_STATE Werte werden in wdm.h definiert.
DevicePowerState
Ein DEVICE_POWER_STATE typisierter Wert, der den aktuellen Energiezustand des Geräts angibt. DEVICE_POWER_STATE Werte werden in wdm.h definiert.
Hinweise
Clients verwenden diese Struktur in der Regel, wenn sie ein bestimmtes PnP- oder Energieverwaltungsverhalten implementieren müssen, das nicht von AVStream bereitgestellt wird. Ein Zeiger auf eine KSDEVICE-Struktur ist der erste Parameter für alle in KSDEVICE_DISPATCH angegebenen Dispatchroutinen, und der Client kann die Kontextinformationen verwenden, um einen eigenen Kontext für diese Routinen anzufügen. Darüber hinaus können Clients einen Zeiger auf die KSDEVICE-Struktur von einem WDM-Geräteobjektzeiger abrufen, indem sie KsGetDeviceForDeviceObject aufrufen.
Wie oben erwähnt, wird der Kontext zur Erstellungszeit auf NULL initialisiert. Abkömmlinge dieser KSDEVICE-Struktur haben jedoch die entsprechenden Context-Member auf den Wert des Context-Members des übergeordneten Objekts festgelegt. Dies geschieht, wenn das neue Objekt erstellt wird. Weitere Informationen finden Sie unter AVStream-Objekthierarchie und Objekttaschen. Sehen Sie sich auch die Referenzseiten für die möglichen AVStream-Nachfolgerobjekte an: KSFILTERFACTORY, KSFILTER und KSPIN.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie in Microsoft DirectX 8.0 und höheren Versionen. |
Kopfzeile | ks.h (einschließlich Ks.h) |