ScsiPortWmiPostProcess 함수(scsiwmi.h)

ScsiPortWmiPostProcess 루틴은 WMI SRB에 대한 요청 컨텍스트를 업데이트합니다.

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

구문

void ScsiPortWmiPostProcess(
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] UCHAR                    SrbStatus,
  [in] ULONG                    BufferUsed
);

매개 변수

[in] RequestContext

이 SRB에 대한 요청 컨텍스트에 대한 포인터입니다.

[in] SrbStatus

유효한 SRB 상태 지정합니다. 미니포트 드라이버에 전달된 출력 버퍼가 너무 작아서 요청의 모든 데이터를 포함할 수 없는 경우 미니포트 드라이버는 SrbStatus 를 SRB_STATUS_DATA_OVERRUN 설정합니다.

[in] BufferUsed

SrbStatus가 성공을 나타내는 경우 미니포트 드라이버는 BufferUsed를 버퍼에 기록된 데이터 바이트 수로 설정합니다. SrbStatus가 SRB_STATUS_DATA_OVERRUN 경우 미니포트 드라이버는 BufferUsed를 SRB를 성공적으로 완료하는 데 필요한 바이트 수로 설정합니다.

반환 값

없음

설명

미니포트 드라이버는 WMI SRB 요청이 처리되고 완료될 준비가 된 후 ScsiPortWmiPostProcess 를 호출해야 합니다.

동기 SRB의 경우 콜백 루틴에서 ScsiPortWmiPostProcess 가 호출됩니다.

보류 중인 SRB의 경우 SRB가 처리된 후 완료되기 전에 ScsiPortWmiPostProcess 가 호출됩니다.

미니포트 드라이버가 SrbStatus 를 SRB_STATUS_DATA_OVERRUN 설정하고 BufferUsed를 설정하는 경우 할당된 버퍼가 BufferUsed 바이트보다 크거나 같은 연속적인 동일한 WMI SRB가 성공해야 합니다. 이는 드라이버가 SrbStatus가 SRB_STATUS_DATA_OVERRUN 동일한 ScsiPortWmiPostProcess를 호출할 때 요청을 완료하는 데 필요한 BufferUsed에 대한 정확한 값을 설정하는 경우 달성되어야 합니다. 변수 크기의 출력 구조의 경우 SRB의 입력 데이터 버퍼에는 정확한 BufferUsed 값을 결정하기에 충분한 정보가 있어야 합니다. 입력 데이터 버퍼에 충분한 정보가 포함되지 않은 경우 드라이버는 SRB_STATUS_DATA_OVERRUN 동일한 SRB를 두 번 실패해서는 안 됩니다. 대신 드라이버는 SRB_STATUS_DATA_OVERRUN 설정하고 먼저 출력 버퍼에 필요한 최소 크기를 요청한 다음, SRB_STATUS_SUCCESS 설정하고 출력 버퍼의 내용에 오류를 표시해야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 scsiwmi.h(Miniport.h, Scsi.h 포함)

추가 정보

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus