structure HW_INITIALIZATION_DATA (strmini.h)
La structure HW_INITIALIZATION_DATA spécifie les informations de base dont le pilote de classe a besoin pour commencer à initialiser le minidriver. Le minidriver transmet une structure de HW_INITIALIZATION_DATA au pilote de classe lorsqu’il s’inscrit lui-même en appelant StreamClassRegisterMinidriver.
Syntaxe
typedef struct _HW_INITIALIZATION_DATA {
union {
ULONG HwInitializationDataSize;
struct {
USHORT SizeOfThisPacket;
USHORT StreamClassVersion;
};
};
ULONG HwInitializationDataSize;
PHW_INTERRUPT HwInterrupt;
PHW_RECEIVE_DEVICE_SRB HwReceivePacket;
PHW_CANCEL_SRB HwCancelPacket;
PHW_REQUEST_TIMEOUT_HANDLER HwRequestTimeoutHandler;
ULONG DeviceExtensionSize;
ULONG PerRequestExtensionSize;
ULONG PerStreamExtensionSize;
ULONG FilterInstanceExtensionSize;
BOOLEAN BusMasterDMA;
BOOLEAN Dma24BitAddresses;
ULONG BufferAlignment;
BOOLEAN TurnOffSynchronization;
ULONG DmaBufferSize;
ULONG NumNameExtensions;
PWCHAR *NameExtensionArray;
ULONG Reserved[2];
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
Membres
HwInitializationDataSize
Spécifie la taille de cette structure de données, en octets.
SizeOfThisPacket
StreamClassVersion
HwInterrupt
Pointe vers la routine StrMiniInterrupt du minidriver.
HwReceivePacket
Pointe vers la routine StrMiniReceiveDevicePacket du minidriver.
HwCancelPacket
Pointe vers la routine StrMiniCancelPacket du minidriver.
HwRequestTimeoutHandler
Pointe vers la routine StrMiniRequestTimeout du minidriver.
DeviceExtensionSize
Spécifie la taille en octets de la mémoire tampon que le pilote de classe doit allouer pour l’extension de périphérique du minidriver. Le minidriver peut utiliser cette mémoire tampon pour enregistrer des informations privées. Le pilote de classe transmet des pointeurs vers cette mémoire tampon dans le membre HwDeviceExtension de HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT et PORT_CONFIGURATION_INFORMATION structures qu’il transmet au minidriver.
PerRequestExtensionSize
Spécifie la taille en octets de la mémoire tampon que le pilote de classe doit allouer pour la mémoire tampon pointée par le membre SRBExtension de HW_STREAM_REQUEST_BLOCK structures qu’il transmet au minidriver. Le pilote de classe alloue une mémoire tampon pour chaque HW_STREAM_REQUEST_BLOCK.
PerStreamExtensionSize
Spécifie la taille en octets de la mémoire tampon que le pilote de classe doit allouer pour la mémoire tampon pointée par le membre HwStreamExtension du HW_STREAM_OBJECT d’un flux. Le pilote de classe alloue une mémoire tampon pour chaque flux.
FilterInstanceExtensionSize
Spécifie la taille en octets de la mémoire tampon que l’extension de classe doit allouer pour la mémoire tampon pointée par le membre HwInstanceExtension de HW_STREAM_REQUEST_BLOCK structures qu’elle transmet au minidriver. Le pilote de classe alloue une mémoire tampon pour chaque instance du minidriver.
BusMasterDMA
Si la valeur est TRUE, l’appareil peut effectuer un bus direct master DMA vers la mémoire tampon DMA du minidriver.
Dma24BitAddresses
Les minidrivers doivent définir cette valeur sur TRUE si le matériel DMA utilisé par les appareils ne peut accéder qu’aux 24 bits inférieurs de l’espace d’adressage.
BufferAlignment
Spécifie l’exigence d’alignement, en octets, pour les mémoires tampons DMA. Par exemple, la valeur 4 indique que les mémoires tampons DMA doivent être alignées sur les limites de 4 octets.
TurnOffSynchronization
Si la valeur est TRUE, le minidriver gère sa propre synchronisation ; sinon, le pilote de classe gère la synchronisation. La plupart des mini-drivers doivent définir cette valeur sur FALSE. Pour plus d’informations , consultez Synchronisation de minidriver dans le Guide de conception du minidriver en streaming .
DmaBufferSize
Spécifie la taille en octets de la mémoire tampon DMA que le pilote de classe doit allouer pour le minidriver. Le minidriver obtient un pointeur vers cette mémoire tampon en appelant StreamClassGetDmaBuffer. Le pilote de classe alloue de la mémoire non pagable contiguë qui ne sera pas disponible pour le système d’exploitation ou d’autres pilotes. Cette valeur doit donc être aussi petite que possible.
NumNameExtensions
NameExtensionArray
Reserved[2]
Réservé pour le système. Les minidrivers doivent ignorer ce membre.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | strmini.h (inclure Strmini.h) |