다음을 통해 공유


SCSI_WMI_REQUEST_BLOCK 구조체(srb.h)

이 구조는 WMI 명령에 사용할 SCSI_REQUEST_BLOCK 특별한 버전입니다.

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

구문

typedef struct _SCSI_WMI_REQUEST_BLOCK {
  USHORT Length;
  UCHAR  Function;
  UCHAR  SrbStatus;
  UCHAR  WMISubFunction;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  Reserved1;
  UCHAR  WMIFlags;
  UCHAR  Reserved2[2];
  ULONG  SrbFlags;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  PVOID  DataPath;
  PVOID  Reserved3;
  PVOID  OriginalRequest;
  PVOID  SrbExtension;
  ULONG  Reserved4;
  ULONG  Reserved6;
  UCHAR  Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;

멤버

Length

이 구조체의 크기(바이트)를 지정합니다.

Function

SRB_FUNCTION_WMI 요청이 WMI 요청임을 지정합니다. 이 멤버가 SRB_FUNCTION_WMI 설정되지 않은 경우 미니포트 드라이버가 요청에 실패해야 합니다.

SrbStatus

완료된 요청의 상태 반환합니다. 이 멤버는 요청Complete를 사용하여 ScsiPortNotification을 호출하여 요청이 완료되었음을 OS 관련 드라이버에 알리기 전에 미니포트 드라이버에서 설정해야 합니다. 이 멤버의 값은 SCSI_REQUEST_BLOCK SrbStatus 에 나열된 값일 수 있습니다.

WMISubFunction

수행할 WMI 작업을 나타냅니다. 미니포트 드라이버는 MinorFunction이 이 값으로 설정된 ScsiPortWmiDispatchFunction을 호출합니다. 하위 함수 값은 WMI 작업을 식별하는 WMI 부 IRP 번호에 해당합니다.

PathId

요청에 대한 SCSI 포트 또는 버스를 나타냅니다. 이 값은 0부터 시작합니다. SRB_WMI_FLAGS_ADAPTER_REQUEST WMIFlags에서 설정된 경우 이 멤버는 예약됩니다.

TargetId

버스의 대상 컨트롤러 또는 디바이스를 나타냅니다. SRB_WMI_FLAGS_ADAPTER_REQUEST WMIFlags에서 설정된 경우 이 멤버는 예약됩니다.

Lun

디바이스의 논리적 단위 번호를 나타냅니다. SRB_WMI_FLAGS_ADAPTER_REQUEST WMIFlags에서 설정된 경우 이 멤버는 예약됩니다.

Reserved1

시스템 사용을 위해 예약되었으며 미니포트 드라이버에서 사용할 수 없습니다.

WMIFlags

SRB_WMI_FLAGS_ADAPTER_REQUEST 설정되고 PathId, TargetIdLun이 예약된 경우 WMI 요청이 어댑터용임을 나타냅니다. 그렇지 않으면 WMIFlagsNULL이 되며, 이는 요청이 PathId, TargetIdLun으로 지정된 디바이스에 대한 요청임을 나타냅니다.

Reserved2[2]

시스템 사용을 위해 예약되었으며 미니포트 드라이버에서 사용할 수 없습니다.

SrbFlags

요청에 대한 다양한 매개 변수 및 옵션을 나타냅니다. SrbFlags 는 읽기 전용입니다. 이 멤버는 다음 플래그 중 하나 이상으로 설정됩니다.

SRB_FLAGS_DATA_IN

데이터가 디바이스에서 시스템으로 전송됨을 나타냅니다.

SRB_FLAGS_DATA_OUT

데이터가 시스템에서 디바이스로 전송됨을 나타냅니다.

SRB_FLAGS_NO_DATA_TRANSFER

이 요청을 사용하여 데이터 전송이 없음을 나타냅니다. 이 설정이 설정되면 플래그 SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN 및 SRB_FLAGS_UNSPECIFIED_DIRECTION 명확합니다.

SRB_FLAGS_DISABLE_SYNCH_TRANSFER

가능한 경우 HBA가 이 전송 요청에 대해 비동기 I/O를 수행해야 했음을 나타냅니다. 이전에 동기 I/O가 협상된 경우 HBA는 전송을 수행하기 전에 비동기 I/O에 대해 재협상해야 합니다.

SRB_FLAGS_DISABLE_DISCONNECT

HBA가 이 요청을 처리하는 동안 대상이 SCSI 버스에서 연결을 끊을 수 없도록 허용해서는 안 됨을 나타냅니다.

DataTransferLength

데이터 버퍼의 크기(바이트)를 나타냅니다. 미니포트 드라이버는 BufferSize가 이 값으로 설정된 ScsiPortWmiDispatchFunction을 호출합니다. 언더런이 발생하는 경우 미니포트 드라이버는 이 멤버를 실제로 전송된 바이트 수로 업데이트해야 합니다.

TimeOutValue

OS 관련 포트 드라이버에서 시간 초과를 고려할 수 있기 전에 요청이 실행될 수 있는 간격(초)을 나타냅니다. 포트 드라이버가 이미 수행하므로 미니포트 드라이버는 요청 시간을 초과할 필요가 없습니다.

DataBuffer

데이터 버퍼를 가리킵니다. 미니포트 드라이버는 버퍼가 이 값으로 설정된 ScsiPortWmiDispatchFunction을 호출합니다. 미니포트 드라이버는 HBA에 대한 PORT_CONFIGURATION_INFORMATION MapBuffers 값에 관계없이 이 값을 데이터 포인터로 사용할 수 있습니다. 미니포트 드라이버는 DMA를 사용하여 데이터를 버퍼로 직접 전송할 수 없습니다.

DataPath

이 요청에 대한 WMI 데이터 경로를 지정합니다. 미니포트 드라이버는 DataPath가 이 값으로 설정된 ScsiPortWmiDispatchFunction을 호출합니다.

Reserved3

시스템 사용을 위해 예약되었으며 미니포트 드라이버에서 사용할 수 없습니다.

OriginalRequest

이 요청에 대한 IRP를 가리킵니다. 이 멤버는 드라이버를 최소화하는 것은 관련이 없습니다.

SrbExtension

Srb 확장을 가리킵니다. 미니포트 드라이버는 HW_INITIALIZATION_DATA SrbExtensionSize 를 0으로 설정하는 경우 이 멤버를 사용하지 않아야 합니다. SrbExtension의 메모리는 OS 관련 포트 드라이버에 의해 초기화되지 않으며, 미니포트 드라이버 결정 데이터는 HBA에서 직접 액세스할 수 있습니다. 해당 물리적 주소는 SrbExtension 포인터를 사용하여 ScsiPortGetPhysicalAddress를 호출하여 가져올 수 있습니다.

Reserved4

시스템 사용을 위해 예약되었으며 미니포트 드라이버에서 사용할 수 없습니다.

Reserved6

시스템 사용을 위해 예약되었으며 미니포트 드라이버에서 사용할 수 없습니다. 이 멤버는 WINDOWS Server 2003 SP1부터 유효합니다.

Reserved5[16]

시스템 사용을 위해 예약되었으며 미니포트 드라이버에서 사용할 수 없습니다.

설명

Windows NT 스토리지 클래스 및 필터 드라이버는 WMI SRB를 시스템 포트 드라이버로 보낼 수 있습니다. 시스템 포트 드라이버는 미니포트 드라이버를 대신하여 특정 WMI 요청을 처리합니다. 포트 드라이버가 WMI 요청을 처리할 수 없는 경우 미니포트 드라이버에 요청을 전달합니다.

미니포트 드라이버는 미니포트 드라이버가 PORT_CONFIGURATION_INFORMATION 구조에서 WmiDataProvider 를 설정한 경우에만 포트 드라이버에서 WMI 요청을 받습니다. 미니포트 드라이버가 요청을 지원하는 경우 먼저 RequestComplete를 사용하여 ScsiPortNotification을 두 번 호출한 다음 NextRequest(또는 NextLuRequest)를 사용하여 요청을 처리하고 완료해야 합니다.

미니포트 드라이버에서 WMI를 지원하는 방법에 대한 자세한 내용은 Windows 관리 계측을 참조하세요.

요구 사항

요구 사항
헤더 srb.h(Storport.h, Srb.h, Storport.h, Minitape.h 포함)

추가 정보

HW_INITIALIZATION_DATA(SCSI)

SCSI(PORT_CONFIGURATION_INFORMATION)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction