Поделиться через


структура HW_INITIALIZATION_DATA (strmini.h)

Структура HW_INITIALIZATION_DATA указывает основные сведения, которые драйвер класса должен начать инициализацию мини-driver. Мини-driver передает HW_INITIALIZATION_DATA структуру драйверу класса при регистрации, вызвав StreamClassRegisterMinidriver.

Синтаксис

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;

Члены

HwInitializationDataSize

Задает размер этой структуры данных в байтах.

SizeOfThisPacket

StreamClassVersion

HwInterrupt

Указывает на StrMiniInterrupt мини-driver.

HwReceivePacket

Указывает на StrMiniReceiveDevicePacket мини-driver.

HwCancelPacket

Указывает на StrMiniCancelPacket мини-driver.

HwRequestTimeoutHandler

Указывает на StrMiniRequestTimeout мини-driver.

DeviceExtensionSize

Указывает размер в байтах буфера, который должен выделить драйвер класса для расширения устройства мини-driver. Мини-driver может использовать этот буфер для записи частных сведений. Драйвер класса передает указатели на этот буфер в HwDeviceExtension член HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTи PORT_CONFIGURATION_INFORMATION структуры, которые передаются в мини-driver.

PerRequestExtensionSize

Указывает размер в байтах буфера, который драйвер класса должен выделить для буфера, на который указывает SRBExtension член HW_STREAM_REQUEST_BLOCK структур, которые он передает в мини-driver. Драйвер класса выделяет один буфер для каждого HW_STREAM_REQUEST_BLOCK.

PerStreamExtensionSize

Указывает размер в байтах буфера, который драйвер класса должен выделить для буфера, на который указывает HwStreamExtension члена HW_STREAM_OBJECTпотока. Драйвер класса выделяет один буфер для каждого потока.

FilterInstanceExtensionSize

Указывает размер в байтах буфера, который должен выделить для буфера, на который указывает HwInstanceExtension член HW_STREAM_REQUEST_BLOCK структур, которые он передает в мини-driver. Драйвер класса выделяет один буфер для каждого экземпляра мини-driver.

BusMasterDMA

Если TRUE, устройство может выполнять прямую шины-главный DMA в буфер DMA мини-driver.

Dma24BitAddresses

Мини-drivers должны задать для этого значение TRUE если оборудование DMA, используемое устройствами, могут получить доступ только к более низкому 24-разрядному пространству адресов.

BufferAlignment

Указывает требование выравнивания в байтах для буферов DMA. Например, значение 4 указывает, что буферы DMA должны быть выровнены по границам 4-байтов.

TurnOffSynchronization

Если TRUE, мини-driver будет обрабатывать собственную синхронизацию; в противном случае драйвер класса обрабатывает синхронизацию. Большинство мини-drivers должны задать для этого значения значение FALSE. Дополнительные сведения см. в синхронизации мини-drive r потоковой передачи.

DmaBufferSize

Указывает размер в байтах буфера DMA, который должен выделить драйвер класса для мини-driver. Мини-driver получает указатель на этот буфер путем вызова StreamClassGetDmaBuffer. Драйвер класса выделяет непрерывную неизменяемую память, которая не будет доступна операционной системе или другим драйверам, поэтому это значение должно быть как можно меньше.

NumNameExtensions

NameExtensionArray

Reserved[2]

Зарезервировано для использования системы. Мини-drivers должны игнорировать этот элемент.

Требования

Требование Ценность
заголовка strmini.h (include Strmini.h)