Estructura KSDEVICE (ks.h)

La estructura KSDEVICE describe un dispositivo funcional WDM administrado por AVStream.

Sintaxis

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;

Miembros

Descriptor

Puntero a una estructura KSDEVICE_DESCRIPTOR que describe las características del dispositivo y los filtros estáticos admitidos por él.

Bag

Este miembro especifica el KSOBJECT_BAG (equivalente al tipo PVOID) asociado al dispositivo. Consulte Bolsas de objetos.

Context

Puntero a una ubicación de memoria que contiene información de contexto para el dispositivo. AVStream almacena un puntero a una extensión de dispositivo en este miembro para minidrivers que asignan una extensión de dispositivo en AVStrMiniDeviceStart. La memoria asignada para el contexto debe colocarse en el contenedor de objetos mediante KsAddItemToObjectBag. El contexto se inicializa en NULL en tiempo de creación.

FunctionalDeviceObject

Puntero a una estructura DEVICE_OBJECT que es el objeto de dispositivo funcional WDM para el dispositivo que se describe.

PhysicalDeviceObject

Puntero a una estructura de DEVICE_OBJECT que es el objeto de dispositivo físico WDM para el dispositivo que se describe.

NextDeviceObject

Puntero a una estructura de DEVICE_OBJECT que es el siguiente dispositivo de la pila de controladores determinada por IoAttachDeviceToDeviceStack.

Started

Este miembro indica si este dispositivo determinado se ha iniciado o no. Si es TRUE, se ha iniciado el dispositivo. Si es FALSE, el dispositivo no se ha iniciado. Esta marca se establece durante el procesamiento de la IRP_MN_START_DEVICE y se restablece durante el procesamiento del IRP_MN_STOP_DEVICE. Un dispositivo que no se inicia devuelve STATUS_DEVICE_NOT_READY en respuesta a todas las solicitudes para crear un filtro.

SystemPowerState

Valor de tipo SYSTEM_POWER_STATE que indica el estado de energía actual del sistema. SYSTEM_POWER_STATE valores se definen en wdm.h.

DevicePowerState

Valor con tipo DEVICE_POWER_STATE que indica el estado de alimentación actual del dispositivo. DEVICE_POWER_STATE valores se definen en wdm.h.

Comentarios

Normalmente, los clientes usan esta estructura si deben implementar un comportamiento específico de PnP o administración de energía que no proporciona AVStream. Un puntero a una estructura KSDEVICE es el primer parámetro para todas las rutinas de envío especificadas en KSDEVICE_DISPATCH, y el cliente puede usar la información de contexto para adjuntar su propio contexto para estas rutinas. Además, los clientes pueden obtener un puntero a la estructura KSDEVICE desde un puntero de objeto de dispositivo WDM llamando a KsGetDeviceForDeviceObject.

Como se mencionó anteriormente, Context se inicializa en NULL en tiempo de creación. Sin embargo, los descendientes de esta estructura KSDEVICE tienen sus miembros Context correspondientes establecidos en el valor del miembro Context del objeto primario. Esto sucede cuando se crea el nuevo objeto. Para obtener más información, vea AvStream Object Hierarchy and Object Bags (Jerarquía de objetos avStream y bolsas de objetos). Consulte también las páginas de referencia de los posibles objetos descendientes de AVStream: KSFILTERFACTORY, KSFILTER y KSPIN.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y en sistemas operativos posteriores y en Microsoft DirectX 8.0 y versiones posteriores.
Encabezado ks.h (incluye Ks.h)

Consulte también

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject