共用方式為


PSCSIWMI_SET_DATABLOCK回呼函式 (scsiwmi.h)

會呼叫迷你埠驅動程式 HwScsiWmiSetDataBlock 例程,以變更單一數據區塊實例中的所有數據項。 此例程是選擇性的。

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

語法

PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;

BOOLEAN PscsiwmiSetDatablock(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG BufferSize,
  [in] PUCHAR Buffer
)
{...}

參數

[in] DeviceContext

指向傳遞至 ScsiPortWmiDispatchFunction的迷你埠驅動程式定義內容值。

[in] RequestContext

指向迷你埠驅動程序傳遞至 ScsiPortWmiDispatchFunctionSCSIWMI_REQUEST_CONTEXT 結構。

[in] GuidIndex

將數據區塊的索引指定為SCSI_WMILIB_CONTEXT結構中迷你埠驅動程序傳遞至 ScsiPortWmiDispatchFunction的 GUID 清單。

[in] InstanceIndex

如果 GuidIndex 所指定的區塊 有多個實例,InstanceIndex 指定 實例。

[in] BufferSize

指定緩衝區的大小,以位元組為單位,Buffer

[in] Buffer

指向包含 實例新值的緩衝區。

傳回值

HwScsiWmiSetDataBlock 如果要求擱置,則傳回SRB_STATUS_PENDING;如果要求已完成,則傳回非零 SRB 狀態值。 這個例程傳回的SRB狀態值與傳入 ScsiPortWmiPostProcess相同。

言論

當迷你埠驅動程式收到 SRB 時,函式 成員會設定為 SRB_FUNCTION_WMI,它會呼叫 ScsiPortWmiDispatchFunction,並將指標指向初始化的 SCSI_WMILIB_CONTEXT 結構,並將 MinorFunction 設為 Srb->WmiSubFunction。 如果 MinorFunction 表示變更數據區塊實例的要求,SCSI 埠驅動程式會呼叫迷你埠驅動程式的 HwScsiWmiSetDataBlock 例程。

如果迷你埠驅動程式未實作 HwScsiWmiSetDataBlock 例程,則必須將 setWmiDataBlock SetWmiDataBlock 設定為SCSI_WMILIB_CONTEXT miniport 驅動程序傳遞至 ScsiPortWmiDispatchFunctionNULL。 在此情況下,埠驅動程式會將SRB_STATUS_ERROR傳回給呼叫端。

如果迷你埠驅動程序實作 HwScsiWmiSetDataBlock 它應該會將數據區塊的實例從緩衝區變更為新的值。

如果數據區塊中的所有專案都是只讀的,迷你埠驅動程序應該會傳回SRB_STATUS_ERROR。 否則,迷你埠驅動程式會變更它可以的專案,並傳回SRB_STATUS_SUCCESS。

迷你埠驅動程序應該在要求完成時,使用適當的 SrbStatus 值呼叫 ScsiPortWmiPostProcess。 如果要求沒有畫筆,ScsiPortWmiPostProcess 應該在 HwScsiWmiSetDataBlock 回呼中呼叫。 否則,當要求實際完成時,應該呼叫 ScsiPortWmiPostProcess

要求

要求 價值
目標平臺 桌面
標頭 scsiwmi.h (包括 Scsiwmi.h)

另請參閱

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess