estructura HW_INITIALIZATION_DATA (strmini.h)
La estructura HW_INITIALIZATION_DATA especifica la información básica que el controlador de clase necesita para comenzar a inicializar el minidriver. El minidriver pasa una estructura HW_INITIALIZATION_DATA al controlador de clase cuando se registra a sí mismo mediante una llamada a StreamClassRegisterMinidriver.
Sintaxis
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;
Miembros
HwInitializationDataSize
Especifica el tamaño de esta estructura de datos, en bytes.
SizeOfThisPacket
StreamClassVersion
HwInterrupt
Apunta a la rutina StrMiniInterrupt del minidriver.
HwReceivePacket
Apunta a la rutina StrMiniReceiveDevicePacket del minidriver.
HwCancelPacket
Apunta a la rutina StrMiniCancelPacket del minidriver.
HwRequestTimeoutHandler
Apunta a la rutina StrMiniRequestTimeout del minidriver.
DeviceExtensionSize
Especifica el tamaño en bytes del búfer que el controlador de clase debe asignar para la extensión de dispositivo del minidriver. El minidriver puede usar este búfer para registrar información privada. El controlador de clase pasa punteros a este búfer en el miembro HwDeviceExtension de HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT y PORT_CONFIGURATION_INFORMATION estructuras que pasa al minidriver.
PerRequestExtensionSize
Especifica el tamaño en bytes del búfer al que debe asignar el controlador de clase para el búfer al que apunta el miembro SRBExtension de HW_STREAM_REQUEST_BLOCK estructuras que pasa al minidriver. El controlador de clase asignará un búfer para cada HW_STREAM_REQUEST_BLOCK.
PerStreamExtensionSize
Especifica el tamaño en bytes del búfer al que debe asignar el controlador de clase para el búfer al que apunta el miembro HwStreamExtension de la HW_STREAM_OBJECT de una secuencia. El controlador de clase asignará un búfer para cada secuencia.
FilterInstanceExtensionSize
Especifica el tamaño en bytes del búfer al que debe asignar la extensión de clase para el búfer al que apunta el miembro HwInstanceExtension de HW_STREAM_REQUEST_BLOCK estructuras que pasa al minidriver. El controlador de clase asigna un búfer para cada instancia del minidriver.
BusMasterDMA
Si es TRUE, el dispositivo puede realizar DMA de maestro de bus directo al búfer DMA del minidriver.
Dma24BitAddresses
Los minidrivers deben establecer esto en TRUE si el hardware DMA que usan los dispositivos solo puede tener acceso a los 24 bits inferiores del espacio de direcciones.
BufferAlignment
Especifica el requisito de alineación, en bytes, para los búferes DMA. Por ejemplo, un valor de 4 indica que los búferes DMA deben alinearse en límites de 4 bytes.
TurnOffSynchronization
Si es TRUE, el minidriver controlará su propia sincronización; de lo contrario, el controlador de clase controla la sincronización. La mayoría de los minidrivers deben establecer este valor en FALSE. Consulte Sincronización de minidriver en la Guía de diseño de minidriver de streaming para obtener más información.
DmaBufferSize
Especifica el tamaño en bytes del búfer DMA que el controlador de clase debe asignar para el minidriver. El minidriver obtiene un puntero a este búfer mediante una llamada a StreamClassGetDmaBuffer. El controlador de clase asigna memoria no paginable contigua que no estará disponible para el sistema operativo o a otros controladores, por lo que este valor debe ser lo más pequeño posible.
NumNameExtensions
NameExtensionArray
Reserved[2]
Reservado para uso del sistema. Los minidrivers deben omitir este miembro.
Requisitos
Requisito | Valor |
---|---|
Header | strmini.h (include Strmini.h) |