EVT_UFX_DEVICE_PORT_CHANGE Rückruffunktion (ufxclient.h)
Die Implementierung des Clienttreibers zum Aktualisieren des Typs des neuen Ports, mit dem das USB-Gerät verbunden 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 in einem vorherigen Aufruf des UfxDeviceCreateempfangen hat.
[in] unnamedParam2
Ein USBFN_PORT_STATE typisiertes Flag, das den Typ des neuen Ports angibt.
Rückgabewert
Nichts
Bemerkungen
Der Clienttreiber für den Funktionshostcontroller registriert seine EVT_UFX_DEVICE_PORT_CHANGE Implementierung mit der USB-Funktionsklassenerweiterung (UFX), indem die UfxDeviceCreate-Methode aufgerufen wird.
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 die UfxDeviceEventComplete--Methode aufgerufen wird.
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- | Fenster |
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | ufxclient.h |
IRQL- | PASSIVE_LEVEL |