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

Структура HW_INITIALIZATION_DATA указывает основные сведения, необходимые драйверу класса для начала инициализации мини-драйвера. Мини-драйвер передает структуру 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 мини-драйвера.

HwReceivePacket

Указывает на подпрограмму StrMiniReceiveDevicePacket мини-драйвера.

HwCancelPacket

Указывает на подпрограмму StrMiniCancelPacket минидрайвера.

HwRequestTimeoutHandler

Указывает на подпрограмму StrMiniRequestTimeout мини-драйвера.

DeviceExtensionSize

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

PerRequestExtensionSize

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

PerStreamExtensionSize

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

FilterInstanceExtensionSize

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

BusMasterDMA

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

Dma24BitAddresses

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

BufferAlignment

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

TurnOffSynchronization

Если значение РАВНО TRUE, мини-диск будет обрабатывать собственную синхронизацию; в противном случае драйвер класса обрабатывает синхронизацию. Для большинства мини-драйверов это значение должно быть false. Дополнительные сведения см. в разделе Синхронизация мини-драйверов в руководстве по проектированию мини-драйверов потоковой передачи .

DmaBufferSize

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

NumNameExtensions

NameExtensionArray

Reserved[2]

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

Требования

Требование Значение
Заголовок strmini.h (включая Strmini.h)