EVT_UFX_DEVICE_PORT_CHANGE Rückruffunktion (ufxclient.h)

Die Implementierung des Clienttreibers, um den Typ des neuen Ports zu aktualisieren, an den das USB-Gerät angeschlossen ist.

Syntax

EVT_UFX_DEVICE_PORT_CHANGE EvtUfxDevicePortChange;

void EvtUfxDevicePortChange(
  [in] UFXDEVICE unnamedParam1,
  [in] USBFN_PORT_TYPE unnamedParam2
)
{...}

Parameter

[in] unnamedParam1

Das Handle für ein USB-Geräteobjekt, das der Clienttreiber bei einem vorherigen Aufruf von UfxDeviceCreate empfangen hat.

[in] unnamedParam2

Ein USBFN_PORT_STATE typisiertes Flag, das den Typ des neuen Ports angibt.

Rückgabewert

Keine

Bemerkungen

Der Clienttreiber für den Funktionshostcontroller registriert seine EVT_UFX_DEVICE_PORT_CHANGE Implementierung bei der USB-Funktionsklassenerweiterung (UFX), indem er die UfxDeviceCreate-Methode aufruft .

UFX ruft diesen Ereignisrückruf auf, um den Clienttreiber über den neuen Zustand des Geräts zu informieren.

Der Clienttreiber gibt den Abschluss dieses Ereignisses an, indem er die UfxDeviceEventComplete-Methode aufruft .

Beispiele


EVT_UFX_DEVICE_PORT_CHANGE UfxDevice_EvtDevicePortChange;

VOID
UfxDevice_EvtDevicePortChange (
    _In_        UFXDEVICE UfxDevice,
    _In_        USBFN_PORT_TYPE NewPort
    )
/*++

Routine Description:

    EvtDevicePortChange handler for the UFXDEVICE object.
    Caches the new port type, and stops or resumes idle as needed.

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

    NewPort - New port type

--*/
{
    NTSTATUS Status;
    PUFXDEVICE_CONTEXT Context;

    PAGED_CODE();

    TraceEntry();

    Context = UfxDeviceGetContext(UfxDevice);

    TraceInformation("New PORT: %d", NewPort);

    //
    //  #### TODO: Insert code to examine the device USB state and port type 
    //      and determine if it needs to stop or resume idle.


    UfxDeviceEventComplete(UfxDevice, STATUS_SUCCESS);
    TraceExit();
}

Anforderungen

Anforderung Wert
Zielplattform Windows
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile ufxclient.h
IRQL PASSIVE_LEVEL

Weitere Informationen

UfxDeviceCreate

UfxDeviceEventComplete