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

La implementación del controlador cliente para establecer o borrar la característica de alimentación especificada en el controlador de función.

Sintaxis

EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE EvtUfxDeviceSuperSpeedPowerFeature;

void EvtUfxDeviceSuperSpeedPowerFeature(
  [in] UFXDEVICE unnamedParam1,
  [in] USHORT unnamedParam2,
  [in] BOOLEAN unnamedParam3
)
{...}

Parámetros

[in] unnamedParam1

Identificador de un objeto de dispositivo USB que el controlador cliente recibió en una llamada anterior a UfxDeviceCreate.

[in] unnamedParam2

Selector de características para la característica de alimentación que se establece o borra, tal y como se define en la sección 9.4 de la especificación USB 3.0. El selector de características puede ser uno de estos valores:

  • U1_ENABLE
  • U2_ENABLE

[in] unnamedParam3

Si es TRUE, establezca la característica.

Si es FALSE, desactive la característica.

Valor devuelto

None

Observaciones

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

Esta devolución de llamada de evento solo es necesaria para los controladores que admiten la operación SuperSpeed.

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

Ejemplos


EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE UfxDevice_EvtDeviceSuperSpeedPowerFeature;

VOID
UfxDevice_EvtDeviceSuperSpeedPowerFeature (
    _In_ UFXDEVICE Device,
    _In_ USHORT Feature,
    _In_ BOOLEAN Set
    )
/*++

Routine Description:

    EvtDeviceSuperSpeedPowerFeature handler for the UFXDEVICE object.
    
    Handles a set or clear U1/U2 request from the host.  

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

    Feature - Indicates the feature being set or cleared.  Either U1 or U2 enable.

    Set - Indicates if the feature should be set or cleared
    
--*/
{
    TraceEntry();

    if (Feature == USB_FEATURE_U1_ENABLE) {
        if (Set == TRUE) {
            //
            // #### TODO: Insert code to initiate U1  ####
            //
        } else {
            //
            // #### TODO: Insert code to exit U1 ####
            //
        }
    } else if (Feature == USB_FEATURE_U2_ENABLE) {
        if (Set == TRUE) {
            //
            // #### TODO: Insert code to initiate U2 ####
            //
        } else {
            //
            // #### TODO: Insert code to exit U2 ####
            //
        }
    } else {
        NT_ASSERT(FALSE);
    }

    UfxDeviceEventComplete(Device, 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

UfxDeviceCreate

UfxDeviceEventComplete