Поделиться через


Функция WlanRegisterDeviceServiceNotification (wlanapi.h)

Позволяет клиентам пользовательского режима с правами администратора или драйверам User-Mode Driver Framework (UMDF) регистрироваться для получения нежелательных уведомлений, соответствующих интересующим их службам устройств.

Синтаксис

DWORD WlanRegisterDeviceServiceNotification(
  HANDLE                               hClientHandle,
  const PWLAN_DEVICE_SERVICE_GUID_LIST pDevSvcGuidList
);

Параметры

hClientHandle

Тип: HANDLE

Дескриптор сеанса клиента, полученный при предыдущем вызове функции WlanOpenHandle .

pDevSvcGuidList

Тип: CONST PWLAN_DEVICE_SERVICE_GUID_LIST

Необязательный указатель на константную WLAN_DEVICE_SERVICE_GUID_LIST структуру, представляющую GUIDслужбы устройств, для которых требуется получать уведомления. Элемент dwIndex структуры должен иметь значение меньше, чем значение его члена dwNumberOfItems ; В противном случае может произойти нарушение доступа. При каждом вызове этого API предыдущий список служб устройств заменяется новым.

Чтобы отменить регистрацию, присвойте pDevSvcGuidListnullptrзначение или передайте указатель на структуру WLAN_DEVICE_SERVICE_GUID_LIST с элементом dwNumberOfItems , равным 0.

Возвращаемое значение

Тип: HRESULT

Если функция выполнена успешно, возвращаемое значение будет ERROR_SUCCESS. Если функция завершается сбоем с ERROR_ACCESS_DENIED, вызывающий объект не имеет достаточных разрешений для выполнения этой операции. Вызывающий объект должен иметь права администратора или быть драйвером UMDF.

Комментарии

Функция WlanRegisterDeviceServiceNotification является расширением существующих собственных API Wi-Fi для служб устройств WLAN.

Клиентское приложение вызывает эту функцию для регистрации и отмены регистрации уведомлений для интересующих его служб устройств.

Любая регистрация для получения уведомлений для служб устройств, вызванных этой функцией, будет автоматически отменена, если вызывающее приложение закрывает свой дескриптор вызова (путем вызова WlanCloseHandle с параметром hClientHandle ) или если процесс завершается.

Чтобы получать эти уведомления, клиент должен вызвать эту функцию с допустимым параметром pDevSvcGuidList , а также вызвать функцию WlanRegisterNotification с аргументом dwNotifSourceWLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE (который определен в wlanapi.h). Регистрация для получения уведомлений для служб устройств действует до тех пор, пока приложение не закроет дескриптор клиента (путем вызова WlanCloseHandle с параметром hClientHandle), или процесс не завершится, или WlanRegisterDeviceServiceNotification будет вызван с аргументом nullptrpDevSvcGuidList , или если параметру dwNumberOfItems присвоено значение 0.

Когда операционная система получает уведомление службы устройства от драйвера независимого поставщика оборудования (IHV), а клиент зарегистрировался для этих уведомлений с помощью WlanRegisterDeviceServiceNotification, клиент получит их через WLAN_NOTIFICATION_CALLBACK , зарегистрированный с помощью вызова WlanRegisterNotification. Этот обратный вызов будет вызываться для каждого полученного клиентом уведомления (с отдельным буфером для каждого уведомления).

Элементу NotificationSourceструктуры WLAN_NOTIFICATION_DATA, полученной функцией обратного вызова (то есть элементу данных), будет присвоено значение WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE. Большой двоичный объект данных, GUID службы устройств и код операции, связанный с этим уведомлением, будут присутствовать в элементе pDataWLAN_NOTIFICATION_DATA, который будет указывать на структуру типа WLAN_DEVICE_SERVICE_NOTIFICATION_DATA.

Примечание

Служба WLAN или ОПЕРАЦИОННая система не проверка, чтобы узнать, поддерживаются ли драйвером IHV GUIDслужбы устройства, для которых зарегистрирован клиент. Клиент должен запрашивать поддерживаемые службы устройств с помощью API WlanGetSupportedDeviceServices , если это необходимо.

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть wlanapi.h