Struttura KSDEVICE (ks.h)

La struttura KSDEVICE descrive un dispositivo funzionale WDM gestito da AVStream.

Sintassi

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;

Members

Descriptor

Puntatore a una struttura di KSDEVICE_DESCRIPTOR che descrive le caratteristiche del dispositivo e i filtri statici supportati da esso.

Bag

Questo membro specifica il KSOBJECT_BAG (equivalente al tipo PVOID) associato al dispositivo. Vedere Contenitori di oggetti.

Context

Puntatore a una posizione di memoria che contiene informazioni di contesto per il dispositivo. AVStream archivia un puntatore a un'estensione del dispositivo in questo membro per i minidriver che allocano un'estensione del dispositivo in AVStrMiniDeviceStart. La memoria allocata per il contesto deve essere inserita nel contenitore di oggetti usando KsAddItemToObjectBag. Il contesto viene inizializzato su NULL in fase di creazione.

FunctionalDeviceObject

Puntatore a una struttura DEVICE_OBJECT che rappresenta l'oggetto dispositivo funzionale WDM per il dispositivo descritto.

PhysicalDeviceObject

Puntatore a una struttura DEVICE_OBJECT che rappresenta l'oggetto dispositivo fisico WDM per il dispositivo descritto.

NextDeviceObject

Puntatore a una struttura DEVICE_OBJECT che rappresenta il dispositivo successivo nello stack di driver determinato da IoAttachDeviceToDeviceToDeviceStack.

Started

Questo membro indica se questo particolare dispositivo è stato avviato o meno. Se TRUE, il dispositivo è stato avviato. Se FALSE, il dispositivo non è stato avviato. Questo flag viene impostato durante l'elaborazione del IRP_MN_START_DEVICE e viene reimpostato durante l'elaborazione del IRP_MN_STOP_DEVICE. Un dispositivo non avviato restituisce STATUS_DEVICE_NOT_READY in risposta a tutte le richieste per creare un filtro.

SystemPowerState

Valore tipizzato SYSTEM_POWER_STATE che indica lo stato di alimentazione corrente del sistema. SYSTEM_POWER_STATE valori sono definiti in wdm.h.

DevicePowerState

Valore tipizzato DEVICE_POWER_STATE che indica lo stato di alimentazione corrente del dispositivo. DEVICE_POWER_STATE valori sono definiti in wdm.h.

Commenti

I client usano in genere questa struttura se devono implementare un comportamento specifico di risparmio energia o PnP non fornito da AVStream. Un puntatore a una struttura KSDEVICE è il primo parametro per tutte le routine dispatch specificate in KSDEVICE_DISPATCH e il client è libero di usare le informazioni di contesto per collegare il proprio contesto per queste routine. Inoltre, i client possono ottenere un puntatore alla struttura KSDEVICE da un puntatore a oggetti dispositivo WDM chiamando KsGetDeviceForDeviceObject.

Come indicato in precedenza, Context viene inizializzato su NULL in fase di creazione. Tuttavia, i discendenti di questa struttura KSDEVICE hanno i membri Context corrispondenti impostati sul valore del membro Context dell'oggetto padre. Ciò si verifica quando viene creato il nuovo oggetto. Per altre informazioni, vedere Gerarchia di oggetti AVStream e contenitori di oggetti. Vedere anche le pagine di riferimento per i possibili oggetti discendenti AVStream: KSFILTERFACTORY, KSFILTER e KSPIN.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Microsoft Windows XP e nei sistemi operativi successivi e in Microsoft DirectX 8.0 e versioni successive.
Intestazione ks.h (include Ks.h)

Vedi anche

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject