EVT_UFX_DEVICE_HOST_DISCONNECT fonction de rappel (ufxclient.h)

Implémentation du pilote client pour désactiver la communication du contrôleur de fonction avec l’hôte.

Syntaxe

EVT_UFX_DEVICE_HOST_DISCONNECT EvtUfxDeviceHostDisconnect;

void EvtUfxDeviceHostDisconnect(
  [in] UFXDEVICE unnamedParam1
)
{...}

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 à la méthode UfxDeviceCreate .

Valeur de retour

None

Remarques

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

UFX appelle ce rappel d’événement pour effectuer une déconnexion réversible sur le câble USB. Après cet appel, le pilote client ne doit pas initier de connexion avec l’hôte tant qu’UFX n’appelle pas EVT_UFX_DEVICE_HOST_CONNECT.

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

Exemples

EVT_UFX_DEVICE_HOST_DISCONNECT UfxDevice_EvtDeviceHostDisconnect;

VOID
UfxDevice_EvtDeviceHostDisconnect (
    _In_ UFXDEVICE UfxDevice
    )
/*++

Routine Description:

    EvtDeviceHostDisconnect callback handler for UFXDEVICE object.

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

--*/
{
    PCONTROLLER_CONTEXT ControllerContext;
    PUFXDEVICE_CONTEXT DeviceContext;
    BOOLEAN EventComplete;

    TraceEntry();

    DeviceContext = UfxDeviceGetContext(UfxDevice);
    ControllerContext = DeviceGetControllerContext(DeviceContext->FdoWdfDevice);

    EventComplete = TRUE;

    //
    // #### TODO: Cancel all transfers. ####
    //

    WdfSpinLockAcquire(ControllerContext->DpcLock);

    //
    // #### TODO: Insert code to clear the run state on the controller ####
    //
    
    WdfSpinLockRelease(ControllerContext->DpcLock);

    if (EventComplete) {
        UfxDeviceEventComplete(UfxDevice, 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