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가 성공합니다. 드라이버가 SRB_STATUS_DATA_OVERRUN 동일한 SrbStatus를 사용하여 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