функция обратного вызова EVT_URS_SET_ROLE (ursdevice.h)
Расширение класса URS вызывает этот обратный вызов события, если требуется, чтобы драйвер клиента изменил роль контроллера.
Синтаксис
EVT_URS_SET_ROLE EvtUrsSetRole;
NTSTATUS EvtUrsSetRole(
[in] WDFDEVICE Device,
[in] URS_ROLE Role
)
{...}
Параметры
[in] Device
Дескриптор объекта устройства платформы, полученный драйвером клиента в предыдущем вызове WdfDeviceCreate.
[in] Role
Значение типа URS_ROLE, указывающее роль для устройства контроллера.
Возвращаемое значение
Если операция выполнена успешно, функция обратного вызова должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(состояние) равно TRUE. В противном случае он должен вернуть значение состояния, для которого значение NT_SUCCESS(status) равно FALSE.
Замечания
Чтобы зарегистрировать реализацию обратного вызова события драйвера клиента, драйверу необходимо задать URS_CONFIG элемент EvtUrsSetRole в указатель функции метода реализации, а затем вызвать метод UrsDeviceInitialize путем передачи заполненной структуры. Драйвер должен вызвать метод после создания объекта устройства платформы для контроллера.
Примеры
NTSTATUS
EvtUrsSetRole (
_In_ WDFDEVICE Device,
_In_ URS_ROLE Role
)
{
NTSTATUS status;
PFDO_CONTEXT fdoContext;
TRACE_FUNC_ENTRY(TRACE_FLAG);
TRY {
// Change the current role of the controller to the specified role.
// The driver might have stored the control registers in the device context.
// Read and write the register to get and set the current role.
}
TRACE_INFO(TRACE_FLAG, "[Device: 0x%p] Successfully set role to %!URS_ROLE!", Device, Role);
status = STATUS_SUCCESS;
} FINALLY {
}
TRACE_FUNC_EXIT(TRACE_FLAG);
return status;
}
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 |
минимальный поддерживаемый сервер | Windows Server 2016 |
целевая платформа | Виндоус |
минимальная версия KMDF | 1.15 |
заголовка | ursdevice.h (include Urscx.h) |
IRQL | PASSIVE_LEVEL |