Compartilhar via


EVT_UFX_DEVICE_HOST_DISCONNECT função de retorno de chamada (ufxclient.h)

A implementação do driver cliente para desabilitar a comunicação do controlador de função com o host.

Sintaxe

EVT_UFX_DEVICE_HOST_DISCONNECT EvtUfxDeviceHostDisconnect;

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

Parâmetros

[in] unnamedParam1

O identificador para um objeto de dispositivo USB que o driver cliente recebeu em uma chamada anterior para o método UfxDeviceCreate .

Retornar valor

Nenhum

Comentários

O driver do cliente para o controlador de host de função registra sua implementação de EVT_UFX_DEVICE_HOST_DISCONNECT com a extensão de classe de função USB (UFX) chamando o método UfxDeviceCreate .

A UFX invoca esse retorno de chamada de evento para executar uma desconexão reversível no cabo USB. Após essa chamada, o driver cliente não deve iniciar uma conexão com o host até que o UFX invoque EVT_UFX_DEVICE_HOST_CONNECT.

O driver do cliente indica a conclusão desse evento chamando o método UfxDeviceEventComplete .

Exemplos

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 Valor
Plataforma de Destino Windows
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho ufxclient.h
IRQL <=DISPATCH_LEVEL

Confira também