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

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

HwReceivePacket

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

HwCancelPacket

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

HwRequestTimeoutHandler

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

DeviceExtensionSize

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

PerRequestExtensionSize

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

PerStreamExtensionSize

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

FilterInstanceExtensionSize

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

BusMasterDMA

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

Dma24BitAddresses

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

BufferAlignment

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

TurnOffSynchronization

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

DmaBufferSize

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

NumNameExtensions

NameExtensionArray

Reserved[2]

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

Требования

   
Заголовок strmini.h (include Strmini.h)