функция обратного вызова EVT_UFX_DEVICE_PORT_CHANGE (ufxclient.h)
Реализация драйвера клиента для обновления типа нового порта, к которому подключено USB-устройство.
Синтаксис
EVT_UFX_DEVICE_PORT_CHANGE EvtUfxDevicePortChange;
void EvtUfxDevicePortChange(
[in] UFXDEVICE unnamedParam1,
[in] USBFN_PORT_TYPE unnamedParam2
)
{...}
Параметры
[in] unnamedParam1
Дескриптор usb-устройства, полученный драйвером клиента в предыдущем вызове UfxDeviceCreate.
[in] unnamedParam2
Флаг USBFN_PORT_STATE типа, указывающий тип нового порта.
Возвращаемое значение
Никакой
Замечания
Драйвер клиента для контроллера узла функции регистрирует свою реализацию EVT_UFX_DEVICE_PORT_CHANGE с расширением класса функции USB (UFX), вызвав метод UfxDeviceCreate.
UFX вызывает этот обратный вызов события, чтобы сообщить драйверу клиента о новом состоянии устройства.
Драйвер клиента указывает на завершение этого события путем вызова метода UfxDeviceEventComplete.
Примеры
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();
}
Требования
Требование | Ценность |
---|---|
целевая платформа | Виндоус |
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | ufxclient.h |
IRQL | PASSIVE_LEVEL |