Функция UfxDeviceNotifyReset (ufxclient.h)
Уведомляет UFX о событии сброса шины USB.
Синтаксис
void UfxDeviceNotifyReset(
[in] UFXDEVICE UfxDevice,
[in] USB_DEVICE_SPEED DeviceSpeed
);
Параметры
[in] UfxDevice
Дескриптор объекта устройства UFX, созданного драйвером путем вызова UfxDeviceCreate.
[in] DeviceSpeed
Содержит значение типа USB_DEVICE_SPEED , указывающее скорость устройства.
Возвращаемое значение
None
Remarks
Драйвер клиента вызывает UfxDeviceNotifyReset при получении события сброса шины. Все конечные точки, отличные от стандартных, должны быть отключены, а конечная точка по умолчанию должна быть сброшена. Устройство переходит в состояние по умолчанию.
Драйвер клиента обычно вызывает UfxDeviceNotifyReset из функции обратного вызова EvtInterruptDpc . В следующем примере показано, как обработать событие сброса.
VOID
HandleUsbConnect (
WDFDEVICE WdfDevice
)
/*++
Routine Description:
Handles a connect event from the controller.
Arguments:
WDfDevice - WDFDEVICE object representing the controller.
--*/
{
PCONTROLLER_CONTEXT ControllerContext;
USB_DEVICE_SPEED DeviceSpeed;
TraceEntry();
ControllerContext = DeviceGetControllerContext(WdfDevice);
//
// Read the device speed.
//
//
// #### TODO: Add code to read device speed from the controller ####
//
// Sample will assume SuperSpeed operation for illustration purposes
DeviceSpeed = UsbSuperSpeed;
//
// #### TODO: Add any code needed to configure the controller after connect has occurred ####
//
ControllerContext->Speed = DeviceSpeed;
TraceInformation("Connected Speed is %d!", DeviceSpeed);
//
// Notify UFX about reset, which will take care of updating
// Max Packet Size for EP0 by calling descriptor update.
//
UfxDeviceNotifyReset(ControllerContext->UfxDevice, DeviceSpeed);
ControllerContext->Connect = TRUE;
TraceExit();
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 |
Целевая платформа | Windows |
Header | ufxclient.h |
Библиотека | ufxstub.lib |
IRQL | DISPATCH_LEVEL |