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