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