Функция NfcCxHardwareEvent (nfccx.h)
Вызывается драйвером клиента, когда происходит аппаратное событие, например D0Entry и D0Exit, для запуска или остановки устройства. Для драйверов, требующих загрузки встроенного ПО при инициализации или загрузке, рекомендуется переместить этот вызов на отдельный рабочий элемент. Однако драйвер клиента отвечает за следующее:
- Драйвер клиента должен принимать неактивную ссылку на питание перед очередью рабочего элемента. Ссылка должна быть удалена после завершения рабочего элемента. Это гарантирует, что управление питанием бездействия не приводит к тому, что драйвер переходит в D3 во время работы рабочего элемента.
- Драйвер клиента должен синхронизировать рабочий элемент с другими обратными вызовами устройств. Обычно это достигается параметром AutomaticSerialization в WDF_WORKITEM_CONFIG и родительским элементом WDFWORKITEM является WDFDEVICE или явно принимая блокировку устройства, то есть WdfObjectAcquireLock на WDFDEVICE.
- Если вызов события оборудования завершается сбоем из рабочего элемента, драйвер клиента должен перезапустить или разблокировать драйвер, чтобы предотвратить его работу в плохом состоянии. Это можно сделать с помощью параметра перезапуска или выгрузки.
Синтаксис
NTSTATUS NfcCxHardwareEvent(
WDFDEVICE Device,
PNFC_CX_HARDWARE_EVENT HardwareEvent
);
Параметры
Device
Дескриптор объекта устройства платформы.
HardwareEvent
Указатель на структуру NFC_CX_HARDWARE_EVENT.
Возвращаемое значение
Если операция выполнена успешно, функция возвращает STATUS_SUCCESS.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 |
минимальный поддерживаемый сервер | Не поддерживается |
целевая платформа | Виндоус |
заголовка | nfccx.h (include Ncidef.h) |
библиотеки |
Nfccxstub.lib |
DLL | NfcCx.dll |
См. также
руководство по проектированию расширений класса NFC
руководство по проектированию для связи с полями (NFC)