Поделиться через


функция обратного вызова 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(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;
}

Требования

Требование Ценность
целевая платформа Виндоус
минимальная версия KMDF 1.0
минимальная версия UMDF 2.0
заголовка usbfnattach.h
IRQL PASSIVE_LEVEL

См. также

драйвер USB-фильтра для поддержки собственных зарядных устройств