共用方式為


ScsiPortWmiPostProcess 函式 (scsiwmi.h)

ScsiPortWmiPostProcess 例程會更新 WMI SRB 的要求內容。

注意 SCSI 連接埠驅動程式和 SCSI 迷你埠驅動程式模型未來可能會改變或無法使用。 相反地,我們建議使用 Storport 驅動程式Storport miniport 驅動程式模型。
 

語法

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

參數

[in] RequestContext

這個 SRB 之要求內容的指標。

[in] SrbStatus

指定任何有效的 SRB 狀態。 如果傳遞至迷你埠驅動程序的輸出緩衝區太小,無法包含來自要求的所有數據,miniport 驅動程式會將 SrbStatus 設定為SRB_STATUS_DATA_OVERRUN。

[in] BufferUsed

如果 SrbStatus 表示成功,迷你埠驅動程式會將 BufferUsed 設定為寫入緩衝區的數據位元組數目。 如果 SrbStatus 為SRB_STATUS_DATA_OVERRUN,迷你埠驅動程式會將 bufferUsed 設定為成功完成 SRB 所需的位元組數目。

傳回值

沒有

言論

迷你埠驅動程式必須在處理 WMI SRB 要求並準備好完成之後,呼叫 ScsiPortWmiPostProcess

針對同步 SRB,回呼例程中會呼叫 ScsiPortWmiPostProcess

針對暫止的 SRB,ScsiPortWmiPostProcess 會在處理 SRB 之後呼叫,並在完成之前呼叫。

如果迷你埠驅動程式將 SrbStatus 設定為SRB_STATUS_DATA_OVERRUN,並設定 BufferUsed,則配置緩衝區等於或大於 BufferUsed 位元組的連續相同 WMI SRB 應該會成功。 如果驅動程式設定 BufferUsed 的確切值,當呼叫 ScsiPortWmiPostProcessSrbStatus 等於 SRB_STATUS_DATA_OVERRUN 時,應該達到此目的。 對於可變大小的輸出結構,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