PSCSIWMI_SET_DATAITEM回呼函式 (scsiwmi.h)

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

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

語法

C++
PSCSIWMI_SET_DATAITEM PscsiwmiSetDataitem;

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

參數

[in] DeviceContext

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

[in] RequestContext

指向迷你埠驅動程序傳遞至 ScsiPortWmiDispatchFunction 的SCSIWMI_REQUEST_CONTEXT結構。

[in] GuidIndex

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

[in] InstanceIndex

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

[in] DataItemId

指定要設定之數據項的識別碼。

[in] BufferSize

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

[in] Buffer

指向包含數據項新值的緩衝區。

傳回值

HwScsiWmiSetDataItem 會在要求擱置時傳回SRB_STATUS_PENDING,如果要求已完成,則會傳回非零 SRB 狀態值。 此例程所傳回的SRB狀態值,與傳入 HwScsiWmiSetDataItem 的專案相同。 雖然傳回值數據類型是 BOOLEAN, 但 HwScsiWmiSetDataItem 例程實際上會傳回 SRB 狀態值。

備註

當迷你埠驅動程式收到將 Function 成員設定為 SRB_FUNCTION_WMI 的 SRB 時,它會使用初始化SCSI_WMILIB_CONTEXT結構的指標呼叫 ScsiPortWmiDispatchFunction,並將 MinorFunction 設定為 Srb-WmiSubFunction>。 如果 MinorFunction 指出在數據區塊實例中變更專案的要求,SCSI 埠驅動程式會呼叫迷你埠驅動程式的 HwScsiWmiSetDataItem 例程。

如果迷你埠驅動程式未實作 HwScsiWmiSetDataItem 例程,則必須在迷你埠驅動程式傳遞至 ScsiPortWmiDispatchFunction SCSI_WMILIB_CONTEXT將 SetWmiDataItem 設定為 NULL。 在此情況下,埠驅動程式會將SRB_STATUS_ERROR傳回給呼叫端。

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

如果專案是只讀的,迷你埠驅動程式會使用 SRB_STATUS_ERROR 呼叫 ScsiPortWmiPostProcess 。 否則,迷你埠驅動程式會變更專案,並使用 SRB_STATUS_SUCCESS 呼叫 ScsiPortWmiPostProcess

規格需求

需求
目標平台 桌面
標頭 scsiwmi.h (包含 Scsiwmi.h)

另請參閱

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess