Freigeben über


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)

Weitere Informationen

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject