Partager via


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 vers un objet de périphérique USB reçu par le pilote client lors d’un appel précédent à la méthode UfxDeviceCreate.

Valeur de retour

Aucun

Remarques

Le pilote client pour le contrôleur hôte de fonction inscrit 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 lancer une connexion avec l’hôte tant que UFX n’appelle EVT_UFX_DEVICE_HOST_CONNECT.

Le pilote client indique l’achèvement 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();
}

Exigences

Exigence Valeur
plateforme cible Windows
version minimale de KMDF 1.0
version minimale de UMDF 2.0
d’en-tête ufxclient.h
IRQL <=DISPATCH_LEVEL

Voir aussi