structure HW_INITIALIZATION_DATA (strmini.h)
La structure HW_INITIALIZATION_DATA spécifie les informations de base dont le pilote de classe doit commencer à initialiser le minidriver. Le minidriver transmet une structure 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 HwDeviceExtension membre de HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTet 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 SRBExtension membre 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 HwStreamExtension membre du HW_STREAM_OBJECTd’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 HwInstanceExtension membre de HW_STREAM_REQUEST_BLOCK structures qu’il transmet au minidriver. Le pilote de classe alloue une mémoire tampon pour chaque instance du minidriver.
BusMasterDMA
Si TRUE, l’appareil peut effectuer une DMA principale de bus directe 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, une valeur de 4 indique que les mémoires tampons DMA doivent être alignées sur les limites de 4 octets.
TurnOffSynchronization
Si TRUE, le minidriver gère sa propre synchronisation ; sinon, le pilote de classe gère la synchronisation. La plupart des minidrivers doivent définir cette valeur sur FALSE. Pour plus d’informations, consultez de synchronisation minidrive r Streaming Minidriver.
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 une mémoire contiguë nonpage qui ne sera pas disponible pour le système d’exploitation, ou à d’autres pilotes, de sorte que cette valeur doit être aussi petite que possible.
NumNameExtensions
NameExtensionArray
Reserved[2]
Réservé à l’utilisation du système. Les minidrivers doivent ignorer ce membre.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | strmini.h (include Strmini.h) |