EVT_UCX_CONTROLLER_RESET - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ucxcontroller.h

EVT_UCX_CONTROLLER_RESET EvtUcxControllerReset;

VOID EvtUcxControllerReset(
  [in] UCXCONTROLLER UcxController
)
{...}
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nc-ucxcontroller-evt_ucx_controller_reset)

EVT_UCX_CONTROLLER_RESET callback function

Description

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

Parameters

UcxController [in]

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

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);
}

See also

UcxControllerCreate

UcxControllerNeedsReset

UcxControllerResetComplete