VIRTUAL_HW_INITIALIZATION_DATA 구조체(storport.h)
VIRTUAL_HW_INITIALIZATION_DATA 구조에는 각 가상 미니포트 드라이버에 특정한 정보가 포함됩니다.
구문
typedef struct _VIRTUAL_HW_INITIALIZATION_DATA {
ULONG HwInitializationDataSize;
INTERFACE_TYPE AdapterInterfaceType;
PHW_INITIALIZE HwInitialize;
PHW_STARTIO HwStartIo;
PHW_INTERRUPT HwInterrupt;
PVIRTUAL_HW_FIND_ADAPTER HwFindAdapter;
PHW_RESET_BUS HwResetBus;
PHW_DMA_STARTED HwDmaStarted;
PHW_ADAPTER_STATE HwAdapterState;
ULONG DeviceExtensionSize;
ULONG SpecificLuExtensionSize;
ULONG SrbExtensionSize;
ULONG NumberOfAccessRanges;
PVOID Reserved;
UCHAR MapBuffers;
BOOLEAN NeedPhysicalAddresses;
BOOLEAN TaggedQueuing;
BOOLEAN AutoRequestSense;
BOOLEAN MultipleRequestPerLu;
BOOLEAN ReceiveEvent;
USHORT VendorIdLength;
PVOID VendorId;
union {
USHORT ReservedUshort;
USHORT PortVersionFlags;
};
USHORT DeviceIdLength;
PVOID DeviceId;
PHW_ADAPTER_CONTROL HwAdapterControl;
PHW_BUILDIO HwBuildIo;
PHW_FREE_ADAPTER_RESOURCES HwFreeAdapterResources;
PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
PHW_COMPLETE_SERVICE_IRP HwCompleteServiceIrp;
PHW_INITIALIZE_TRACING HwInitializeTracing;
PHW_CLEANUP_TRACING HwCleanupTracing;
} VIRTUAL_HW_INITIALIZATION_DATA, *PVIRTUAL_HW_INITIALIZATION_DATA;
멤버
HwInitializationDataSize
sizeof()에서 반환된 대로 이 구조체의 크기를 바이트 단위로 지정합니다. 이 멤버는 가상 미니포트 드라이버에서 사용되는 이 구조체의 버전을 나타냅니다. 가상 미니포트 드라이버의 DriverEntry 루틴은 포트 드라이버에 대해 이 멤버의 값을 설정해야 합니다.
AdapterInterfaceType
storport 가상 미니포트 드라이버의 경우 AdapterInterfaceType 의 값은 거의 항상 내부입니다. Storport 드라이버가 레거시 버스를 지원하지 않기 때문입니다.
이 때문에 SCSI 포트 드라이버와 함께 사용되는 대부분의 어댑터 인터페이스 형식은 Storport 드라이버에 유효하지 않습니다. 특히 Storport는 다음을 지원하지 않습니다.
- Isa
- Eisa
- MicroChannel
- TurboChannel
또한 SCSI 포트 사례와 달리 Storport 드라이버와 함께 작동하는 가상 미니포트 드라이버는 다음 멤버에 대한 값을 제공할 필요가 없습니다.
- VendorIdLength
- VendorId
- DeviceIdLength
- DeviceId
HwInitialize
모든 가상 미니포트 드라이버에 필요한 진입점인 가상 미니포트 드라이버의 HwStorInitialize 루틴에 대한 포인터입니다.
HwStartIo
모든 가상 미니포트 드라이버에 필요한 진입점인 가상 미니포트 드라이버의 HwStorStartIo 루틴에 대한 포인터입니다.
HwInterrupt
사용되지 않습니다. 가상 미니포트 드라이버는 인터럽트 처리를 하지 않습니다.
HwFindAdapter
모든 가상 미니포트 드라이버에 필요한 진입점인 가상 미니포트 드라이버의 VirtualHwStorFindAdapter 루틴에 대한 포인터입니다.
HwResetBus
모든 가상 미니포트 드라이버에 필요한 진입점인 가상 미니포트 드라이버의 HwStorResetBus 루틴에 대한 포인터입니다.
HwDmaStarted
사용되지 않습니다. 가상 미니포트 드라이버는 DMA를 수행하지 않습니다.
HwAdapterState
Storport 드라이버는 레거시 드라이버를 지원하지 않습니다. 따라서 이 멤버는 NULL이어야 합니다.
DeviceExtensionSize
어댑터별 페이징되지 않은 디바이스 확장에 가상 미니포트 드라이버에 필요한 크기(바이트)를 지정합니다. 가상 미니포트 드라이버는 드라이버 결정 어댑터 정보에 대한 스토리지로 디바이스 확장을 사용합니다. 운영 체제별 포트 드라이버는 0으로 할당하는 각 디바이스 확장을 초기화하고 가상 미니포트 드라이버에 대한 대부분의 호출에서 어댑터별 디바이스 확장에 대한 포인터를 전달합니다. 지정된 크기에는 논리 단위별 드라이버 요청 가상 미니포트 스토리지가 포함되지 않습니다.
SpecificLuExtensionSize
가상 미니포트 드라이버가 논리 단위 단위 비 페이징 스토리지(있는 경우)에 필요한 크기(바이트)를 지정합니다. 가상 미니포트 드라이버는 LU(논리 단위) 확장을 가상 버스의 주변 장치에 대한 드라이버 결정 LU 정보에 대한 스토리지로 사용할 수 있습니다. 운영 체제별 포트 드라이버는 0으로 할당하는 각 LU 확장을 초기화합니다. 가상 미니포트 드라이버가 스토리지가 필요한 LU별 정보를 유지 관리하지 않는 경우 이 멤버를 0으로 설정합니다.
SrbExtensionSize
요청당 페이징되지 않은 스토리지(있는 경우)에 대해 가상 미니포트 드라이버에 필요한 크기(바이트)를 지정합니다. Storport 드라이버와 함께 작동하는 가상 미니포트 드라이버는 분산/수집 목록을 지원해야 하며 SRB별 분산/수집 목록은 일반적으로 SRB 확장에 할당되므로 이 멤버는 거의 0이 아닙니다.
NumberOfAccessRanges
사용되지 않습니다. 가상 미니포트 드라이버는 하드웨어를 지원하지 않습니다.
Reserved
시스템에서 사용하도록 예약되었습니다.
MapBuffers
Name | Description |
---|---|
STOR_MAP_NO_BUFFERS | SRB_FUNCTION_IO_CONTROL 및 SRB_FUNCTION_WMI 대한 버퍼만 매핑합니다. |
STOR_MAP_ALL_BUFFERS | 더 이상 사용되지 않으며 STOR_MAP_NON_READ_WRITE_BUFFERS 동작과 동일합니다. |
STOR_MAP_NON_READ_WRITE_BUFFERS | READ 및 WRITE를 제외한 IO 요청에 대한 버퍼를 매핑합니다. |
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE | READ 및 WRITE를 포함한 모든 IO 요청에 대한 버퍼를 매핑합니다. 미니포트 드라이버는 일반적으로 이 설정을 사용합니다. |
NeedPhysicalAddresses
사용되지 않습니다. 가상 미니포트 드라이버는 하드웨어를 지원하지 않습니다.
TaggedQueuing
TRUE로 설정해야 합니다. TRUE 값은 가상 미니포트 드라이버가 태그가 지정된 큐를 지원한다는 것을 나타냅니다.
AutoRequestSense
TRUE로 설정해야 합니다. TRUE 값은 명시적 요청 없이 HBA가 요청 센스 작업을 수행할 수 있음을 나타냅니다.
MultipleRequestPerLu
TRUE로 설정해야 합니다. TRUE 값은 가상 미니포트 드라이버가 LU(논리 단위)당 여러 요청을 큐에 대기할 수 있음을 나타냅니다.
ReceiveEvent
이 값은 더 이상 사용되지 않으며 TRUE 또는 FALSE로 설정할 수 있습니다.
VendorIdLength
공급업체 식별자의 길이(바이트)입니다.
VendorId
공급업체 식별자입니다.
ReservedUshort
예약되어 있습니다.
PortVersionFlags
포트 드라이버가 지원하는 기능을 나타내는 플래그의 비트맵입니다. 현재 사용 가능한 유일한 플래그는 SP_VER_TRACE_SUPPORT 포트 드라이버가 추적을 지원한다는 것을 나타냅니다.
DeviceIdLength
디바이스 식별자의 길이(바이트)입니다.
DeviceId
디바이스 식별자입니다.
HwAdapterControl
가상 미니포트 드라이버의 HwStorAdapterControl 루틴에 대한 포인터입니다.
HwBuildIo
이 멤버는 사용되지 않습니다.
HwFreeAdapterResources
모든 가상 미니포트 드라이버에 필요한 진입점인 가상 미니포트 드라이버의 HwStorFreeAdapterResources 루틴에 대한 포인터입니다.
HwProcessServiceRequest
가상 미니포트 드라이버의 HwStorProcessServiceRequest 루틴에 대한 포인터입니다.
HwCompleteServiceIrp
가상 미니포트 드라이버의 HwStorCompleteServiceIrp 루틴에 대한 포인터입니다.
HwInitializeTracing
가상 미니포트 드라이버의 HwStorInitializeTracing 루틴에 대한 포인터입니다.
HwCleanupTracing
가상 미니포트 드라이버의 HwStorCleanupTracing 루틴에 대한 포인터입니다.
설명
가상 미니포트 드라이버가 Windows 8 이상에서만 실행되는 경우 드라이버는 VIRTUAL_HW_INITIALIZATION_DATA 대신 HW_INITIALIZATION_DATA 구조를 사용해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | storport.h(Storport.h 포함) |