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)