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

另请参阅

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