estrutura HW_INITIALIZATION_DATA (strmini.h)

A estrutura HW_INITIALIZATION_DATA especifica as informações básicas de que o driver de classe precisa para começar a inicializar o minidriver. O minidriver passa uma estrutura HW_INITIALIZATION_DATA para o driver de classe quando ele se registra chamando StreamClassRegisterMinidriver.

Sintaxe

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;

Membros

HwInitializationDataSize

Especifica o tamanho dessa estrutura de dados, em bytes.

SizeOfThisPacket

StreamClassVersion

HwInterrupt

Aponta para a rotina StrMiniInterrupt do minidriver.

HwReceivePacket

Aponta para a rotina StrMiniReceiveDevicePacket do minidriver.

HwCancelPacket

Aponta para a rotina StrMiniCancelPacket do minidriver.

HwRequestTimeoutHandler

Aponta para a rotina StrMiniRequestTimeout do minidriver.

DeviceExtensionSize

Especifica o tamanho em bytes do buffer que o driver de classe deve alocar para a extensão de dispositivo do minidriver. O minidriver pode usar esse buffer para registrar informações privadas. O driver de classe passa ponteiros para esse buffer no membro HwDeviceExtension de HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT e PORT_CONFIGURATION_INFORMATION estruturas que ele passa para o minidriver.

PerRequestExtensionSize

Especifica o tamanho em bytes do buffer que o driver de classe deve alocar para o buffer apontado pelo membro SRBExtension de HW_STREAM_REQUEST_BLOCK estruturas que ele passa para o minidriver. O driver de classe alocará um buffer para cada HW_STREAM_REQUEST_BLOCK.

PerStreamExtensionSize

Especifica o tamanho em bytes do buffer que o driver de classe deve alocar para o buffer apontado pelo membro HwStreamExtension do HW_STREAM_OBJECT de um fluxo. O driver de classe alocará um buffer para cada fluxo.

FilterInstanceExtensionSize

Especifica o tamanho em bytes do buffer que a extensão de classe deve alocar para o buffer apontado pelo membro HwInstanceExtension de HW_STREAM_REQUEST_BLOCK estruturas que ele passa para o minidriver. O driver de classe aloca um buffer para cada instância do minidriver.

BusMasterDMA

Se TRUE, o dispositivo poderá executar o DMA master barramento direto para o buffer de DMA do minidriver.

Dma24BitAddresses

Os minidrivers devem definir isso como TRUE se o hardware de DMA usado pelos dispositivos puder acessar apenas os 24 bits inferiores do espaço de endereço.

BufferAlignment

Especifica o requisito de alinhamento, em bytes, para buffers de DMA. Por exemplo, um valor de 4 indica que os buffers de AMD devem ser alinhados em limites de 4 bytes.

TurnOffSynchronization

Se TRUE, o minidriver manipulará sua própria sincronização; caso contrário, o driver de classe manipula a sincronização. A maioria dos minidrivers deve definir esse valor como FALSE. Confira Sincronização do Minidriver no Guia de Design do Minidriver de Streaming para obter mais informações.

DmaBufferSize

Especifica o tamanho em bytes do buffer de DMA que o driver de classe deve alocar para o minidriver. O minidriver obtém um ponteiro para esse buffer chamando StreamClassGetDmaBuffer. O driver de classe aloca memória não pageável contígua que não estará disponível para o sistema operacional ou para outros drivers, portanto, esse valor deve ser o menor possível.

NumNameExtensions

NameExtensionArray

Reserved[2]

Reservado para uso do sistema. Os minidrivers devem ignorar esse membro.

Requisitos

Requisito Valor
Cabeçalho strmini.h (inclua Strmini.h)