Partager via


EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE fonction de rappel (ufxclient.h)

Implémentation du pilote client pour définir ou effacer la fonctionnalité d’alimentation spécifiée sur le contrôleur de fonction.

Syntaxe

EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE EvtUfxDeviceSuperSpeedPowerFeature;

void EvtUfxDeviceSuperSpeedPowerFeature(
  [in] UFXDEVICE unnamedParam1,
  [in] USHORT unnamedParam2,
  [in] BOOLEAN unnamedParam3
)
{...}

Paramètres

[in] unnamedParam1

Handle d’un objet de périphérique USB que le pilote client a reçu lors d’un appel précédent à UfxDeviceCreate.

[in] unnamedParam2

Sélecteur de caractéristiques pour la fonctionnalité d’alimentation définie ou désactivée, comme défini dans la section 9.4 de la spécification USB 3.0. Le sélecteur de fonctionnalités peut être l’une des valeurs suivantes :

  • U1_ENABLE
  • U2_ENABLE

[in] unnamedParam3

Si la valeur est TRUE, définissez la fonctionnalité.

Si la valeur est FALSE, effacez la fonctionnalité.

Valeur de retour

None

Remarques

Le pilote client pour le contrôleur hôte de fonction inscrit son implémentation EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE avec l’extension de classe de fonction USB (UFX) en appelant la méthode UfxDeviceCreate .

Ce rappel d’événement n’est requis que pour les contrôleurs qui prennent en charge l’opération SuperSpeed.

Le pilote client indique la fin de cet événement en appelant la méthode UfxDeviceEventComplete .

Exemples


EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE UfxDevice_EvtDeviceSuperSpeedPowerFeature;

VOID
UfxDevice_EvtDeviceSuperSpeedPowerFeature (
    _In_ UFXDEVICE Device,
    _In_ USHORT Feature,
    _In_ BOOLEAN Set
    )
/*++

Routine Description:

    EvtDeviceSuperSpeedPowerFeature handler for the UFXDEVICE object.
    
    Handles a set or clear U1/U2 request from the host.  

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

    Feature - Indicates the feature being set or cleared.  Either U1 or U2 enable.

    Set - Indicates if the feature should be set or cleared
    
--*/
{
    TraceEntry();

    if (Feature == USB_FEATURE_U1_ENABLE) {
        if (Set == TRUE) {
            //
            // #### TODO: Insert code to initiate U1  ####
            //
        } else {
            //
            // #### TODO: Insert code to exit U1 ####
            //
        }
    } else if (Feature == USB_FEATURE_U2_ENABLE) {
        if (Set == TRUE) {
            //
            // #### TODO: Insert code to initiate U2 ####
            //
        } else {
            //
            // #### TODO: Insert code to exit U2 ####
            //
        }
    } else {
        NT_ASSERT(FALSE);
    }

    UfxDeviceEventComplete(Device, STATUS_SUCCESS);
    TraceExit();
}


Configuration requise

Condition requise Valeur
Plateforme cible Windows
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête ufxclient.h
IRQL <=DISPATCH_LEVEL

Voir aussi

UfxDeviceCreate

UfxDeviceEventComplete