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)