다음을 통해 공유


SCSIWMI_REQUEST_CONTEXT 구조체(scsiwmi.h)

SCSIWMI_REQUEST_CONTEXT 구조체에는 WMI SRB에 대한 컨텍스트 정보가 포함됩니다.

참고

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

구문

typedef struct {
  PVOID  UserContext;
  ULONG  BufferSize;
  PUCHAR Buffer;
  UCHAR  MinorFunction;
  UCHAR  ReturnStatus;
  ULONG  ReturnSize;
} SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT;

멤버

UserContext

미니포트 드라이버가 SRB를 처리하는 데 필요한 데이터를 포함하는 미니포트 드라이버 버퍼를 가리킵니다. 미니포트 드라이버의 HW_DEVICE_EXTENSION 구조 또는 다른 버퍼에 대한 포인터일 수 있습니다.

BufferSize

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

Buffer

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

MinorFunction

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

ReturnStatus

SRB의 반환 상태 나타냅니다. 이 멤버는 미니포트 드라이버가 ScsiPortWmiPostProcess 를 호출하여 요청 컨텍스트를 업데이트할 때까지 유효하지 않습니다.

ReturnSize

SRB에 대해 전송된 데이터의 바이트 수를 나타냅니다. 이 멤버는 미니포트 드라이버가 ScsiPortWmiPostProcess 를 호출하여 요청 컨텍스트를 업데이트할 때까지 유효하지 않습니다.

설명

미니포트 드라이버는 함수 멤버가 SRB_FUNCTION_WMI 설정된 SRB를 받으면 요청 컨텍스트에 대한 포인터를 포함하여 요청 매개 변수를 사용하여 ScsiPortWmiDispatchFunction 을 호출합니다. ScsiPortWmiDispatchFunction은 요청 컨텍스트를 미니포트 드라이버의 적절한 HwScsiWmiXxx 루틴에 전달합니다.

미니포트 드라이버가 SRB 처리를 완료하고 SRB를 완료하기 전에 미니포트 드라이버는 ScsiPortWmiPostProcess 를 호출하여 요청 컨텍스트의 ReturnStatusReturnSize 멤버를 업데이트해야 합니다. 미니포트 드라이버는 ScsiPortWmiGetReturnSizeScsiPortWmiGetReturnStatus를 호출하여 SRB의 데이터 전송 길이 및 상태 이러한 값으로 업데이트합니다. 각각.

요청 컨텍스트는 SRB를 처리하는 동안 유효한 상태를 유지해야 합니다. SRB가 보류될 수 있는 경우 미니포트 드라이버는 SRB가 완료될 때까지 유효한 상태로 유지되도록 SRB 확장에서 SCSIWMI_REQUEST_CONTEXT 구조를 할당해야 합니다. 사용되지 않는 SRB의 경우 구조체는 scope 벗어나지 않는 스택 프레임에서 할당할 수 있습니다.

요구 사항

요구 사항
헤더 scsiwmi.h(Scsiwmi.h 포함)

추가 정보

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess