다음을 통해 공유


SCSI_PNP_REQUEST_BLOCK 구조체(storport.h)

SCSI_PNP_REQUEST_BLOCK 구조는 플러그 앤 플레이(PNP) 요청에 사용되는 SCSI_REQUEST_BLOCK 특수 버전입니다.

메모

SCSI 포트 드라이버 및 SCSI 미니포트 드라이버 모델은 나중에 변경되거나 사용할 수 없습니다. 대신 Storport 드라이버Storport 미니포트 드라이버 모델을 사용하는 것이 좋습니다.

통사론

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

수행할 플러그 앤 플레이 동작입니다. 이 멤버는 다음 값 중 하나를 가질 수 있습니다.

의미
StorStartDevice(0x00) 디바이스를 시작합니다.
StorRemoveDevice(0x02) 디바이스를 제거합니다.
StorStopDevice(0x04) 디바이스를 중지합니다.
StorQueryCapabilities(0x09) 디바이스의 기능을 쿼리합니다.
StorQueryResourceRequirements(0x0B) 디바이스에 대한 리소스 요구 사항을 쿼리합니다.
StorFilterResourceRequirements(0x0D) 디바이스에 대한 리소스 요구 사항을 필터링합니다.
StorSupriseRemoval(0x17) 디바이스의 서프라이즈 제거. 이 값은 Windows 7에 추가되었습니다.

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의 형식을 확인합니다. 함수 멤버가 SRB_FUNCTION_PNP 설정되면 SRB는 SCSI_PNP_REQUEST_BLOCK형식의 구조입니다.

요구 사항

요구
헤더 storport.h(Storport.h, Minitape.h, Srb.h 포함)

참고 항목

HwStorBuildIo

SCSI_REQUEST_BLOCK

storPortNotification