функция обратного вызова 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 для поддержки собственных зарядных устройств.

Драйвер нижнего фильтра может реализовать функцию USBFN_SET_DEVICE_STATE даже обратного вызова, если ему требуется уведомление об изменениях состояния устройства для правильной настройки зарядки при подключении к узлу или в сценариях лаборатории, где зарядка через USB должна быть отключена.

Примеры

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 для поддержки собственных зарядных устройств