EVT_UCX_CONTROLLER_RESET callback function

The client driver's implementation that UCX calls to reset the controller.

Syntax

EVT_UCX_CONTROLLER_RESET EvtUcxControllerReset;

void EvtUcxControllerReset(
  UCXCONTROLLER UcxController
)
{...}

Parameters

UcxController

A handle to the UCX controller that the client driver received in a previous call to the UcxControllerCreate method.

Return Value

This callback function does not return a value.

Remarks

The UCX client driver registers its EVT_UCX_CONTROLLER_RESET implementation with the USB host controller extension (UCX) by calling the UcxControllerCreate method.

The client driver indicates completion of this event by calling the UcxControllerResetComplete method. Doing so ensures that UCX does not call EVT_UCX_CONTROLLER_RESET a second time before this event callback completes.

If the client driver calls UcxControllerNeedsReset, UCX calls this event callback function. However, UCX may call this event callback function even when the client driver has not called UcxControllerNeedsReset.

Examples

VOID
Controller_EvtControllerReset(
    UCXCONTROLLER UcxController
)

{ UCX_CONTROLLER_RESET_COMPLETE_INFO controllerResetCompleteInfo;

//
// TODO: Reset the controller
//

//
// TODO: Were devices and endpoints programmed in the controller before the reset
// still programmed in the controller after the reset?
//
UCX_CONTROLLER_RESET_COMPLETE_INFO_INIT(&controllerResetCompleteInfo,
                                        UcxControllerStateLost,
                                        TRUE); // reset due to UCX, received EvtReset after WDF power-up

DbgTrace(TL_INFO, Controller, "Controller_EvtControllerReset");

UcxControllerResetComplete(UcxController, &controllerResetCompleteInfo);

}

Requirements

   
Target Platform Windows
Minimum KMDF version 1.0
Minimum UMDF version 2.0
Header ucxcontroller.h (include Ucxclass.h)
IRQL PASSIVE_LEVEL

See Also

UcxControllerCreate

UcxControllerNeedsReset

UcxControllerResetComplete