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_CONTEXT및 미니 드라이버에 전달하는 PORT_CONFIGURATION_INFORMATION 구조체의 HwDeviceExtension 멤버에서 이 버퍼에 포인터를 전달합니다.
PerRequestExtensionSize
클래스 드라이버가 미니 드라이버에 전달하는 HW_STREAM_REQUEST_BLOCK 구조체의 SRBExtension 멤버가 가리키는 버퍼에 할당해야 하는 버퍼의 크기(바이트)를 지정합니다. 클래스 드라이버는 각 HW_STREAM_REQUEST_BLOCK 대해 하나의 버퍼를 할당합니다.
PerStreamExtensionSize
클래스 드라이버가 스트림 HW_STREAM_OBJECTHwStreamExtension 멤버가 가리키는 버퍼에 할당해야 하는 버퍼의 크기(바이트)를 지정합니다. 클래스 드라이버는 각 스트림에 대해 하나의 버퍼를 할당합니다.
FilterInstanceExtensionSize
클래스 확장이 미니 드라이버에 전달하는 HW_STREAM_REQUEST_BLOCK 구조체의 HwInstanceExtension 멤버가 가리키는 버퍼에 대해 할당해야 하는 버퍼의 크기(바이트)를 지정합니다. 클래스 드라이버는 미니 드라이버의 각 인스턴스에 대해 하나의 버퍼를 할당합니다.
BusMasterDMA
TRUE 디바이스는 미니 드라이버의 DMA 버퍼로 직접 버스 마스터 DMA를 수행할 수 있습니다.
Dma24BitAddresses
디바이스에서 사용하는 DMA 하드웨어가 주소 공간의 하위 24비트만 액세스할 수 있는 경우 미니 드라이버는 이를 TRUE 설정해야 합니다.
BufferAlignment
DMA 버퍼에 대한 맞춤 요구 사항(바이트)을 지정합니다. 예를 들어 값이 4이면 DMA 버퍼를 4 바이트 경계에 맞춰야 합니다.
TurnOffSynchronization
TRUE 경우 미니 드라이버는 자체 동기화를 처리합니다. 그렇지 않으면 클래스 드라이버가 동기화를 처리합니다. 대부분의 미니 드라이버는 이 값을 FALSE 설정해야 합니다. 자세한 내용은 스트리밍 미니 드라이버 디자인 가이드미니 드라이버 동기화 참조하세요.
DmaBufferSize
클래스 드라이버가 미니 드라이버에 할당해야 하는 DMA 버퍼의 크기(바이트)를 지정합니다. 미니 드라이버는 StreamClassGetDmaBuffer호출하여 이 버퍼에 대한 포인터를 가져옵니다. 클래스 드라이버는 운영 체제 또는 다른 드라이버에서 사용할 수 없는 연속된 비페이지 가능 메모리를 할당하므로 이 값은 가능한 한 작아야 합니다.
NumNameExtensions
NameExtensionArray
Reserved[2]
시스템 사용을 위해 예약되어 있습니다. 미니 드라이버는 이 멤버를 무시해야 합니다.
요구 사항
요구 | 값 |
---|---|
헤더 | strmini.h(Strmini.h 포함) |