USBFN_SET_DEVICE_STATE回调函数 (usbfnattach.h)
筛选器驱动程序的实现,用于设置设备状态和运行总线速度。
语法
USBFN_SET_DEVICE_STATE UsbfnSetDeviceState;
NTSTATUS UsbfnSetDeviceState(
[in] PVOID Context,
[in] USBFN_DEVICE_STATE DeviceState,
[in] USBFN_BUS_SPEED BusSpeed
)
{...}
参数
[in] Context
指向驱动程序定义的上下文的指针。
[in] DeviceState
指示设备状态 的USBFN_DEVICE_STATE类型的标志。
[in] BusSpeed
指示总线速度 的USBFN_BUS_SPEED类型的标志。
返回值
如果操作成功,回调函数必须返回STATUS_SUCCESS,或NT_SUCCESS (状态) 等于 TRUE 的另一个状态值。 否则,它必须返回一个状态值,NT_SUCCESS (状态) 等于 FALSE。
注解
若要支持附加和分离检测,USB 下部筛选器驱动程序必须发布其支持。 在发布过程中,驱动程序还会注册此回调函数的实现。 有关详细信息,请参阅 用于支持专有充电器的 USB 筛选器驱动程序。
如果要求通知设备状态更改以在连接到主机时正确配置充电,或者在必须禁用通过 USB 充电的实验室方案中,较低的筛选器驱动程序可能会实现 USBFN_SET_DEVICE_STATE 偶数回调函数。
示例
NTSTATUS
UsbLowerFilter_SetDeviceState(
_In_ PVOID Context,
_In_ USBFN_DEVICE_STATE DeviceState,
_In_ USBFN_BUS_SPEED BusSpeed
)
{
PPDCP_CONTEXT PdcpContext = NULL;
PAGED_CODE();
// Get our context
PdcpContext = DeviceGetUsbLowerFilterContext((WDFDEVICE)Context);
PdcpContext->CurrentDeviceState = DeviceState;
PdcpContext->BusSpeed = BusSpeed;
return STATUS_SUCCESS;
}
要求
要求 | 值 |
---|---|
目标平台 | Windows |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | usbfnattach.h |
IRQL | PASSIVE_LEVEL |