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 |