Partager via


Fonction UfxDeviceNotifyReset (ufxclient.h)

Avertit UFX d’un événement de réinitialisation de bus USB.

Syntaxe

void UfxDeviceNotifyReset(
  [in] UFXDEVICE        UfxDevice,
  [in] USB_DEVICE_SPEED DeviceSpeed
);

Paramètres

[in] UfxDevice

Handle vers un objet de périphérique UFX que le pilote a créé en appelant UfxDeviceCreate.

[in] DeviceSpeed

Contient une valeur de type USB_DEVICE_SPEED qui indique la vitesse de l’appareil.

Valeur de retour

None

Remarques

Le pilote client appelle UfxDeviceNotifyReset lorsqu’il reçoit un événement de réinitialisation de bus. Tous les points de terminaison autres que les points de terminaison par défaut doivent être désactivés et le point de terminaison par défaut doit être réinitialisé. L’appareil passe à l’état par défaut.

Le pilote client appelle généralement UfxDeviceNotifyReset à partir de sa fonction de rappel EvtInterruptDpc . L’exemple suivant montre comment gérer un événement de réinitialisation.


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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Plateforme cible Windows
En-tête ufxclient.h
Bibliothèque ufxstub.lib
IRQL DISPATCH_LEVEL