PSCSIWMI_SET_DATABLOCK回调函数 (scsiwmi.h)
调用微型端口驱动程序的 HwScsiWmiSetDataBlock 例程来更改数据块的单个实例中的所有数据项。 此例程是可选的。
语法
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
指向微型端口驱动程序传递给 ScsiPortWmiDispatchFunction 的SCSIWMI_REQUEST_CONTEXT结构。
[in] GuidIndex
通过微型端口驱动程序传递给 ScsiPortWmiDispatchFunction 的 SCSI_WMILIB_CONTEXT 结构中的 GUID 列表来指定数据块的索引。
[in] InstanceIndex
如果 GuidIndex 指定的块具有多个实例, 则 InstanceIndex 将指定该实例。
[in] BufferSize
指定 缓冲区中缓冲区的大小(以字节为单位)。
[in] Buffer
指向包含实例的新值的缓冲区。
返回值
如果请求挂起,HwScsiWmiSetDataBlock 将返回SRB_STATUS_PENDING;如果请求已完成,则返回非零 SRB 状态值。 此例程返回的 SRB 状态值与传递到 ScsiPortWmiPostProcess 的值相同。
注解
当微型端口驱动程序收到函数成员设置为 SRB_FUNCTION_WMI 的 SRB 时,它会调用 ScsiPortWmiDispatchFunction,其中包含指向初始化SCSI_WMILIB_CONTEXT结构的指针,将 MinorFunction 设置为 Srb-WmiSubFunction>。 如果 MinorFunction 指示更改数据块实例的请求,则 SCSI 端口驱动程序会调用微型端口驱动程序的 HwScsiWmiSetDataBlock 例程。
如果微型端口驱动程序未实现 HwScsiWmiSetDataBlock 例程,则必须在微型端口驱动程序传递到 ScsiPortWmiDispatchFunction SCSI_WMILIB_CONTEXT将 SetWmiDataBlock 设置为 NULL。 在这种情况下,端口驱动程序会将SRB_STATUS_ERROR返回给调用方。
如果微型端口驱动程序实现 HwScsiWmiSetDataBlock ,它应将数据块的实例更改为缓冲区中的新值。
如果数据块中的所有项都是只读的,微型端口驱动程序应返回SRB_STATUS_ERROR。 否则,微型端口驱动程序会更改它可以返回的项SRB_STATUS_SUCCESS。
请求完成后,微型端口驱动程序应使用适当的 SrbStatus 值调用 ScsiPortWmiPostProcess。 如果请求未提交,则应在 HwScsiWmiSetDataBlock 回调中调用 ScsiPortWmiPostProcess。 否则,应在请求实际完成时调用 ScsiPortWmiPostProcess 。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | scsiwmi.h (包括 Scsiwmi.h) |