structure PORT_CONFIGURATION_INFORMATION (strmini.h)

PORT_CONFIGURATION_INFORMATION décrit les paramètres matériels de l’appareil d’un minidriver de streaming. Le pilote de classe remplit la plupart des membres avec les informations fournies par le système d’exploitation.

Syntaxe

typedef struct _PORT_CONFIGURATION_INFORMATION {
  ULONG           SizeOfThisPacket;
  PVOID           HwDeviceExtension;
  PDEVICE_OBJECT  ClassDeviceObject;
  PDEVICE_OBJECT  PhysicalDeviceObject;
  ULONG           SystemIoBusNumber;
  INTERFACE_TYPE  AdapterInterfaceType;
  ULONG           BusInterruptLevel;
  ULONG           BusInterruptVector;
  KINTERRUPT_MODE InterruptMode;
  ULONG           DmaChannel;
  ULONG           NumberOfAccessRanges;
  PACCESS_RANGE   AccessRanges;
  ULONG           StreamDescriptorSize;
  PIRP            Irp;
  PKINTERRUPT     InterruptObject;
  PADAPTER_OBJECT DmaAdapterObject;
  PDEVICE_OBJECT  RealPhysicalDeviceObject;
  ULONG           Reserved[1];
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

Membres

SizeOfThisPacket

Taille de cette structure, en octets. Le pilote de classe remplit ce membre.

HwDeviceExtension

Pointeur vers l’extension de l’appareil du minidriver. Le minidriver peut utiliser cette mémoire tampon pour enregistrer des informations privées globales sur le minidriver. Le minidriver définit la taille de cette mémoire tampon dans la structure HW_INITIALIZATION_DATA qu’il transmet lorsqu’il s’inscrit via StreamClassRegisterMinidriver. Le pilote de classe transmet également des pointeurs vers cette mémoire tampon dans le membre HwDeviceExtension du HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK et HW_TIME_CONTEXT structures qu’il transmet au minidriver.

ClassDeviceObject

Pointe vers l’objet de périphérique fonctionnel fourni par le pilote de classe (FDO) pour l’appareil du pilote.

PhysicalDeviceObject

Pointe vers l’objet de périphérique pour le pilote en haut de la pile de pilotes lorsque le pilote de classe s’attache à la pile de pilotes. Les pilotes utilisent ce membre lors de l’appel d’IoCallDriver pour communiquer avec la pile de pilotes. Le membre RealPhysicalDeviceObject pointe vers l’AOP réel pour l’appareil du pilote.

SystemIoBusNumber

Le pilote de classe remplit ce membre avec le numéro d’ID de bus système de l’appareil. Le bus 0 est le bus système principal.

AdapterInterfaceType

Spécifie le type de bus système auquel l’appareil est connecté. Les valeurs possibles incluent Isa, Eisa, MicroChannel, PCIBus et PCMCIABus.

BusInterruptLevel

Le pilote de classe remplit ce membre avec l’IRQL pour les interruptions sur ce bus.

BusInterruptVector

Le pilote de classe remplit ce membre avec le vecteur d’interruption utilisé par l’appareil.

InterruptMode

Le pilote de classe remplit ce membre avec le mode d’interruption( Latched ou LevelSensitive).

DmaChannel

Si l’appareil se connecte au bus ISA, le pilote de classe remplit ce membre avec le canal DMA de l’appareil.

NumberOfAccessRanges

Nombre d’entrées dans le tableau AccessRanges .

AccessRanges

Nombre d’entrées dans le tableau AccessRanges .

StreamDescriptorSize

Le minidriver remplit ce membre avec la taille de sa structure HW_STREAM_DESCRIPTOR .

Irp

Pointeur vers l’IRP de démarrage de l’appareil PnP qui a déclenché cette demande SRB_INITIALIZE_DEVICE.

InterruptObject

Si l’appareil utilise des interruptions, le pilote de classe remplit ce membre avec un pointeur vers l’objet Interrupt associé.

DmaAdapterObject

Si l’appareil utilise DMA, le pilote de classe remplit ce membre avec un pointeur vers l’objet DmaAdapter associé.

RealPhysicalDeviceObject

Pointeur vers l’AOP pour l’appareil du pilote.

Reserved[1]

Réservé pour le système. Ne pas utiliser.

Remarques

La plupart des membres de PORT_CONFIGURATION_INFORMATION fournissent des informations au minidriver sur son utilisation des ressources matérielles, comme son vecteur d’interruption et l’IRQL pour ses interruptions.

Configuration requise

Condition requise Valeur
En-tête strmini.h (inclure Strmini.h)