Structure KSDEVICE (ks.h)

La structure KSDEVICE décrit un appareil fonctionnel WDM géré par AVStream.

Syntaxe

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;

Membres

Descriptor

Pointeur vers une structure KSDEVICE_DESCRIPTOR qui décrit les caractéristiques de l’appareil et les filtres statiques pris en charge par celui-ci.

Bag

Ce membre spécifie le KSOBJECT_BAG (équivalent au type PVOID) associé à l’appareil. Consultez Sacs d’objets.

Context

Pointeur vers un emplacement de mémoire qui contient des informations de contexte pour l’appareil. AVStream stocke un pointeur vers une extension d’appareil dans ce membre pour les minidrivers qui allouent une extension d’appareil dans AVStrMiniDeviceStart. La mémoire allouée pour le contexte doit être placée dans le sac d’objets à l’aide de KsAddItemToObjectBag. Le contexte est initialisé sur NULL au moment de la création.

FunctionalDeviceObject

Pointeur vers une structure DEVICE_OBJECT qui est l’objet d’appareil fonctionnel WDM pour l’appareil décrit.

PhysicalDeviceObject

Pointeur vers une structure DEVICE_OBJECT qui est l’objet d’appareil physique WDM pour l’appareil décrit.

NextDeviceObject

Pointeur vers une structure de DEVICE_OBJECT qui est le périphérique suivant dans la pile de pilotes, tel que déterminé par IoAttachDeviceToDeviceStack.

Started

Ce membre indique si cet appareil particulier a été démarré ou non. Si la valeur EST TRUE, l’appareil a été démarré. Si la valeur est FALSE, l’appareil n’a pas été démarré. Cet indicateur est défini pendant le traitement de l’IRP_MN_START_DEVICE et est réinitialisé pendant le traitement de l’IRP_MN_STOP_DEVICE. Un appareil qui n’est pas démarré retourne STATUS_DEVICE_NOT_READY en réponse à toutes les demandes de création d’un filtre.

SystemPowerState

Valeur de type SYSTEM_POWER_STATE qui indique l’état d’alimentation actuel du système. SYSTEM_POWER_STATE valeurs sont définies dans wdm.h.

DevicePowerState

Valeur de type DEVICE_POWER_STATE qui indique l’état d’alimentation actuel de l’appareil. DEVICE_POWER_STATE valeurs sont définies dans wdm.h.

Remarques

Les clients utilisent généralement cette structure s’ils doivent implémenter un comportement pnP ou de gestion de l’alimentation spécifique qui n’est pas fourni par AVStream. Un pointeur vers une structure KSDEVICE est le premier paramètre de toutes les routines de distribution spécifiées dans KSDEVICE_DISPATCH, et le client est libre d’utiliser les informations de contexte pour attacher son propre contexte pour ces routines. En outre, les clients peuvent obtenir un pointeur vers la structure KSDEVICE à partir d’un pointeur d’objet d’appareil WDM en appelant KsGetDeviceForDeviceObject.

Comme mentionné ci-dessus, Context est initialisé sur NULL au moment de la création. Toutefois, les descendants de cette structure KSDEVICE ont leurs membres Context correspondants définis sur la valeur du membre Context de l’objet parent. Cela se produit lorsque le nouvel objet est créé. Pour plus d’informations, consultez Hiérarchie d’objets AVStream et sacs d’objets. Consultez également les pages de référence pour les objets descendants AVStream possibles : KSFILTERFACTORY, KSFILTER et KSPIN.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et dans Microsoft DirectX 8.0 et versions ultérieures.
En-tête ks.h (inclure Ks.h)

Voir aussi

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject