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) |