PSCSIWMI_SET_DATAITEM回调函数 (scsiwmi.h)

调用微型端口驱动程序的 HwScsiWmiSetDataItem 例程来更改数据块实例中的单个数据项。 此例程是可选的。

注意 SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型将来可能会更改或不可用。 相反,我们建议使用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

语法

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

指定要设置的数据项的 ID。

[in] BufferSize

指定 Buffer 处缓冲区的大小(以字节为单位)。

[in] Buffer

指向包含数据项的新值的缓冲区。

返回值

如果请求挂起,则 HwScsiWmiSetDataItem 返回SRB_STATUS_PENDING;如果请求已完成,则返回非零 SRB 状态值。 此例程返回的 SRB 状态值与传递到 HwScsiWmiSetDataItem 的值相同。 尽管返回值数据类型为 BOOLEAN,但 HwScsiWmiSetDataItem 例程实际上返回 SRB 状态值。

注解

当微型端口驱动程序收到函数成员设置为SRB_FUNCTION_WMI的 SRB 时,它会调用 ScsiPortWmiDispatchFunction,其中包含指向初始化的 SCSI_WMILIB_CONTEXT 结构的指针,并将 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