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
将数据块的索引指定到SCSI_WMILIB_CONTEXT结构中传递给 ScsiPortWmiDispatchFunction的 GUID 列表中。
[in] InstanceIndex
如果由 GuidIn dex 指定的块具有多个实例,InstanceIndex 指定实例。
[in] DataItemId
指定要设置的数据项的 ID。
[in] BufferSize
指定缓冲区 缓冲区的大小(以字节为单位)。
[in] Buffer
指向包含数据项的新值的缓冲区。
返回值
HwScsiWmiSetDataItem 在请求挂起时返回SRB_STATUS_PENDING;如果请求已完成,则返回非零 SRB 状态值。 此例程返回的 SRB 状态值与传入 HwScsiWmiSetDataItem相同。 尽管返回值数据类型为 BOOLEAN,但 HwScsiWmiSetDataItem 例程实际上返回 SRB 状态值。
言论
当微型端口驱动程序收到一个 SRB,其中 函数 成员设置为SRB_FUNCTION_WMI时,它将调用 ScsiPortWmiDispatchFunction,其指针指向初始化的SCSI_WMILIB_CONTEXT结构,MinorFunction 设置为 Srb->WmiSubFunction。 如果 MinorFunction 指示更改数据块实例中的项的请求,SCSI 端口驱动程序将调用微型端口驱动程序的 HwScsiWmiSetDataItem 例程。
如果微型端口驱动程序未实现 HwScsiWmiSetDataItem 例程,则必须在微型端口驱动程序传递给 ScsiPortWmiDispatchFunctionSCSI_WMILIB_CONTEXT中将 setWmiDataItem 设置为 NULL。 在这种情况下,端口驱动程序会将SRB_STATUS_ERROR返回到调用方。
如果未写入请求,微型端口驱动程序应在其 HwScsiWmiSetDataItem 回调中调用 ScsiPortWmiPostProcess。 否则,微型端口驱动程序应在实际完成请求时调用 ScsiPortWmiPostProcess。 微型端口驱动程序应使用相应的 SrbStatus 值调用 ScsiPortWmiPostProcess。
如果该项为只读,微型端口驱动程序将使用 SRB_STATUS_ERROR 调用 ScsiPortWmiPostProcess。 否则,微型端口驱动程序会更改项,并使用 SRB_STATUS_SUCCESS 调用 ScsiPortWmiPostProcess。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | scsiwmi.h (包括 Scsiwmi.h) |