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(status) 等于 TRUE 的另一个状态值。 否则,它必须返回NT_SUCCESS(status)等于 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;
}

要求

要求 价值
目标平台 窗户
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 usbfnattach.h
IRQL PASSIVE_LEVEL

另请参阅

USB 筛选器驱动程序,用于支持专有充电器