Compartir a través de


EVT_UFX_DEVICE_HOST_DISCONNECT función de devolución de llamada (ufxclient.h)

Implementación del controlador de cliente para deshabilitar la comunicación del controlador de función con el host.

Sintaxis

EVT_UFX_DEVICE_HOST_DISCONNECT EvtUfxDeviceHostDisconnect;

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

Parámetros

[in] unnamedParam1

Identificador de un objeto de dispositivo USB que el controlador cliente recibió en una llamada anterior al método UfxDeviceCreate .

Valor devuelto

None

Observaciones

El controlador de cliente para el controlador host de función registra su implementación de EVT_UFX_DEVICE_HOST_DISCONNECT con la extensión de clase de función USB (UFX) llamando al método UfxDeviceCreate .

UFX invoca esta devolución de llamada de evento para realizar una desconexión suave en el cable USB. Después de esta llamada, el controlador cliente no debe iniciar una conexión con el host hasta que UFX invoque EVT_UFX_DEVICE_HOST_CONNECT.

El controlador cliente indica la finalización de este evento llamando al método UfxDeviceEventComplete .

Ejemplos

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

Requisitos

Requisito Value
Plataforma de destino Windows
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado ufxclient.h
IRQL <=DISPATCH_LEVEL

Consulte también