PSCSIWMI_SET_DATAITEM回呼函式 (scsiwmi.h)
系統會呼叫迷你埠驅動程式的 HwScsiWmiSetDataItem 例程,以變更數據區塊實例中的單一數據項。 此例程是選擇性的。
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) |