SCSI_PNP_REQUEST_BLOCK 구조체(srb.h)
SCSI_PNP_REQUEST_BLOCK 구조는 PNP(플러그 앤 플레이) 요청에 사용되는 SCSI_REQUEST_BLOCK 특수 버전입니다.
구문
typedef struct _SCSI_PNP_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR PnPSubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
STOR_PNP_ACTION PnPAction;
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID SenseInfoBuffer;
struct _SCSI_REQUEST_BLOCK *NextSrb;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG SrbPnPFlags;
ULONG Reserved;
UCHAR Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
멤버
Length
SCSI_PNP_REQUEST_BLOCK 구조체의 크기(바이트)입니다.
Function
수행할 작업입니다. SCSI_PNP_REQUEST_BLOCK 구조체의 경우 이 멤버는 항상 SRB_FUNCTION_PNP 설정됩니다.
SrbStatus
완료된 요청의 상태. 미니포트 드라이버는 요청이 완료되었음을 Storport 드라이버에 알리기 전에 이 값을 설정해야 합니다. 미니포트 드라이버는 RequestComplete 알림 유형으로 StorPortNotification 루틴을 호출하여 요청이 완료되었음을 Storport 드라이버에 알 수 있습니다. 가능한 상태 값 목록은 SCSI_REQUEST_BLOCK 참조하세요.
PnPSubFunction
이 멤버는 현재 사용되지 않습니다. 미니포트 드라이버는 이 멤버를 무시합니다.
PathId
요청에 대한 SCSI 포트 또는 버스 식별자입니다. 이 값은 0부터 시작합니다.
TargetId
버스의 대상 컨트롤러 또는 디바이스 식별자입니다.
Lun
디바이스의 LUN(논리 단위 번호)입니다.
PnPAction
수행할 플러그 앤 플레이 작업입니다. 이 멤버는 다음 값 중 하나를 가질 수 있습니다.
SrbFlags
미니포트 드라이버는 이 멤버를 무시해야 합니다.
DataTransferLength
미니포트 드라이버는 이 멤버를 무시해야 합니다.
TimeOutValue
Storport 드라이버가 요청 시간이 초과되었음을 결정하기 전에 요청을 실행할 수 있는 간격(초)입니다.
DataBuffer
미니포트 드라이버는 이 멤버를 무시해야 합니다.
SenseInfoBuffer
미니포트 드라이버는 이 멤버를 무시해야 합니다.
NextSrb
미니포트 드라이버는 이 멤버를 무시해야 합니다.
OriginalRequest
미니포트 드라이버는 이 멤버를 무시해야 합니다.
SrbExtension
SRB 확장에 대한 포인터입니다. 미니포트 드라이버는 HW_INITIALIZATION_DATA 구조에서 SrbExtensionSize를 0으로 설정하는 경우 이 멤버를 사용하지 않아야 합니다. Storport 드라이버는 이 멤버가 가리키는 메모리를 초기화하지 않습니다. HBA는 미니포트 드라이버가 SRB 확장에 쓰는 데이터에 직접 액세스할 수 있습니다. 미니포트 드라이버는 StorPortGetPhysicalAddress 루틴을 호출하여 SRB 확장의 실제 주소를 가져올 수 있습니다.
SrbPnPFlags
PNP 플래그입니다. 현재 허용되는 유일한 플래그는 SRB_PNP_FLAGS_ADAPTER_REQUEST, 이는 PNP 요청이 어댑터의 디바이스 중 하나가 아니라 어댑터용임을 나타냅니다. 이 플래그가 설정되면 미니포트 드라이버는 PathId, TargetId 및 Lun의 값을 무시해야 합니다.
Reserved
시스템에서 사용하도록 예약되었습니다.
Reserved4[16]
시스템에서 사용하도록 예약되었습니다.
설명
Storport 드라이버는 미니포트 드라이버에 SCSI_PNP_REQUEST_BLOCK 요청을 보내 어댑터에 연결된 스토리지 디바이스에 영향을 주는 Windows 플러그 앤 플레이 이벤트를 미니포트 드라이버에 알립니다.
Storport 드라이버는 HwStorBuildIo 를 호출하여 SRB를 미니포트 드라이버에 전달합니다. HwStorBuildIo 는 SRB의 함수 멤버를 확인하여 SRB의 형식을 확인합니다. Function 멤버가 SRB_FUNCTION_PNP 설정된 경우 SRB는 SCSI_PNP_REQUEST_BLOCK 형식의 구조체입니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | srb.h(Storport.h, Minitape.h, Srb.h 포함) |