StorPortPoFxPowerControl 函数 (storport.h)
StorPortPoFxPowerControl 例程将电源控制请求发送到电源管理框架, (PoFx) 转发到电源引擎插件 (PEP) 。
语法
ULONG StorPortPoFxPowerControl(
[in] PVOID HwDeviceExtension,
PSTOR_ADDRESS Address,
[in] LPCGUID PowerControlCode,
[in, optional] PVOID InBuffer,
[in] SIZE_T InBufferSize,
[out, optional] PVOID OutBuffer,
[in] SIZE_T OutBufferSize,
[out, optional] PSIZE_T BytesReturned
);
参数
[in] HwDeviceExtension
指向主机总线适配器的硬件设备扩展的指针 (HBA) 。 这是用于在之前调用 StorPortInitializePoFxPower 时注册设备的设备扩展。
Address
指向电源控制代码的指针。 此代码是指定所请求操作的 GUID 值。
[in] PowerControlCode
指向电源控制代码的指针。 此代码是指定所请求操作的 GUID 值。
[in, optional] InBuffer
指向调用方分配的缓冲区的指针,该缓冲区包含操作的输入数据。 此缓冲区中数据的格式取决于 PowerControlCode 参数指定的电源控制代码。 InBuffer 参数是可选的,如果指定的操作不需要输入数据,则可以指定为 NULL。
[in] InBufferSize
InBuffer 参数指向的输入缓冲区的大小(以字节为单位)。 如果 InBuffer 为 NULL,请将 InBufferSize 设置为零。
[out, optional] OutBuffer
指向调用方分配的缓冲区的指针,该缓冲区包含操作的输出数据。 此缓冲区中数据的格式取决于 PowerControlCode 参数指定的电源控制代码。 OutBuffer 参数是可选的,如果指定的操作不生成任何输出数据,则可以指定为 NULL。
[in] OutBufferSize
OutBuffer 参数指向的输出缓冲区的大小(以字节为单位)。 如果 OutBuffer 为 NULL,请将 OutBufferSize 设置为零。
[out, optional] BytesReturned
指向例程写入到 OutBuffer 指向的缓冲区的数据字节数的位置的指针。 写入的字节数将小于或等于 OutBufferSize。 此参数是可选的,如果调用方不需要知道写入输出缓冲区的字节数,则可以指定为 NULL 。
返回值
StorPortPoFxPowerControl 例程返回以下状态代码之一:
返回代码 | 说明 |
---|---|
|
已成功执行 PowerControlCode 中指定的电源控制操作。 |
|
HwDeviceExtension 或 Device 为 NULL。
-或- 地址 指向无效的单元地址结构。 -或- 找不到 Address 指定的存储设备。 |
|
存储设备未注册到 PoFx。 |
|
当前 IRQL > DISPATCH_LEVEL。 |
|
电源控制操作失败。 |
注解
minport 驱动程序调用此例程以将电源控制请求直接发送到 PEP。 电源控制请求类似于 IOCTL) (I/O 控制请求。 但是,与 IOCTL 不同,电源控制请求直接发送到 PEP,设备堆栈中的其他设备驱动程序不会观察到该请求。 在 StorPortPoFxPowerControl 调用期间,PEP 会同步执行请求的操作。
同样,PEP 可以直接将电源控制请求发送到微型端口。 微型端口驱动程序在其 HwStorAdapterControl 和 HwStorUnitControl 例程中处理此请求。 ControlType 参数接收 HwStorAdapterControl 例程中的 ScsiAdapterPoFxPowerControl 类型,以及 HwStorUnitControl 例程中的 ScsiUnitPoFxPowerControl。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 8 开始提供。 |
目标平台 | 通用 |
标头 | storport.h |
Library | Storport.lib |
IRQL | <= DISPATCH_LEVEL |