HW_INITIALIZATION_DATA 구조체(strmini.h)

HW_INITIALIZATION_DATA 구조체는 클래스 드라이버가 미니 드라이버 초기화를 시작하는 데 필요한 기본 정보를 지정합니다. 미니 드라이버는 StreamClassRegisterMinidriver를 호출하여 자신을 등록할 때 클래스 드라이버에 HW_INITIALIZATION_DATA 구조를 전달합니다.

구문

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

클래스 드라이버가 미니드라이버의 디바이스 확장에 할당해야 하는 버퍼의 크기(바이트)를 지정합니다. 미니 드라이버는 이 버퍼를 사용하여 개인 정보를 기록할 수 있습니다. 클래스 드라이버는 미니 드라이버에 전달하는 HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTPORT_CONFIGURATION_INFORMATION 구조체의 HwDeviceExtension 멤버에서 이 버퍼에 포인터를 전달합니다.

PerRequestExtensionSize

클래스 드라이버가 미니드라이버에 전달하는 HW_STREAM_REQUEST_BLOCK 구조체의 SRBExtension 멤버가 가리키는 버퍼에 할당해야 하는 버퍼의 크기(바이트)를 지정합니다. 클래스 드라이버는 각 HW_STREAM_REQUEST_BLOCK 대해 하나의 버퍼를 할당합니다.

PerStreamExtensionSize

클래스 드라이버가 스트림 HW_STREAM_OBJECT HwStreamExtension 멤버가 가리키는 버퍼에 할당해야 하는 버퍼의 크기 (바이트)를 지정합니다. 클래스 드라이버는 각 스트림에 대해 하나의 버퍼를 할당합니다.

FilterInstanceExtensionSize

미니 드라이버에 전달하는 HW_STREAM_REQUEST_BLOCK 구조체의 HwInstanceExtension 멤버가 가리키는 버퍼에 대해 클래스 확장이 할당해야 하는 버퍼의 크기(바이트)를 지정합니다. 클래스 드라이버는 미니 드라이버의 각 instance 대해 하나의 버퍼를 할당합니다.

BusMasterDMA

TRUE이면 디바이스가 미니 드라이버의 DMA 버퍼로 직접 버스 master DMA를 수행할 수 있습니다.

Dma24BitAddresses

디바이스에서 사용하는 DMA 하드웨어가 주소 공간의 하위 24비트만 액세스할 수 있는 경우 미니드라이버에서 이를 TRUE 로 설정해야 합니다.

BufferAlignment

DMA 버퍼에 대한 맞춤 요구 사항(바이트)을 지정합니다. 예를 들어 값이 4이면 DMA 버퍼가 4 바이트 경계에 맞춰야 합니다.

TurnOffSynchronization

TRUE이면 미니드라이버가 자체 동기화를 처리합니다. 그렇지 않으면 클래스 드라이버가 동기화를 처리합니다. 대부분의 미니 드라이버는 이 값을 FALSE로 설정해야 합니다. 자세한 내용은 스트리밍 미니드라이버 디자인 가이드의 미니드라이버동기화를 참조하세요.

DmaBufferSize

클래스 드라이버가 미니 드라이버에 할당해야 하는 DMA 버퍼의 크기(바이트)를 지정합니다. 미니 드라이버는 StreamClassGetDmaBuffer를 호출하여 이 버퍼에 대한 포인터를 가져옵니다. 클래스 드라이버는 운영 체제 또는 다른 드라이버에 사용할 수 없는 연속된 비페이지 가능 메모리를 할당하므로 이 값은 가능한 한 작아야 합니다.

NumNameExtensions

NameExtensionArray

Reserved[2]

시스템에서 사용하도록 예약되었습니다. 미니드라이버에서는 이 멤버를 무시해야 합니다.

요구 사항

요구 사항
헤더 strmini.h(Strmini.h 포함)