Fonction WlanRegisterDeviceServiceNotification (wlanapi.h)
Permet aux clients en mode utilisateur disposant de privilèges d’administrateur ou User-Mode pilotes UMDF (Driver Framework) de s’inscrire aux notifications non sollicitées correspondant aux services d’appareil qui les intéressent.
Syntaxe
DWORD WlanRegisterDeviceServiceNotification(
HANDLE hClientHandle,
const PWLAN_DEVICE_SERVICE_GUID_LIST pDevSvcGuidList
);
Paramètres
hClientHandle
Type : HANDLE
Handle de session du client, obtenu par un appel précédent à la fonction WlanOpenHandle .
pDevSvcGuidList
Type : PWLAN_DEVICE_SERVICE_GUID_LIST CONST
Pointeur facultatif vers une structure de WLAN_DEVICE_SERVICE_GUID_LIST constante représentant les GUIDdu service d’appareil pour lesquels vous souhaitez recevoir des notifications. Le membre dwIndex de la structure doit avoir une valeur inférieure à la valeur de son membre dwNumberOfItems ; dans le cas contraire, une violation d’accès peut se produire. Chaque fois que vous appelez cette API, la liste précédente des services d’appareil est remplacée par la nouvelle.
Pour annuler l’inscription, définissez pDevSvcGuidList surnullptr
, ou passez un pointeur vers une structure WLAN_DEVICE_SERVICE_GUID_LIST dont le dwNumberOfItems
membre est défini sur 0.
Valeur retournée
Type : HRESULT
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS. Si la fonction échoue avec ERROR_ACCESS_DENIED, l’appelant ne dispose pas des autorisations suffisantes pour effectuer cette opération. L’appelant doit disposer de privilèges d’administrateur ou doit être un pilote UMDF.
Remarques
La fonction WlanRegisterDeviceServiceNotification est une extension des API Wi-Fi natives existantes pour les services d’appareils WLAN.
Une application cliente appelle cette fonction pour inscrire et annuler l’inscription des notifications pour les services d’appareil qui l’intéressent.
Toute inscription pour recevoir des notifications pour les services d’appareil causés par cette fonction est automatiquement annulée si l’application appelante ferme son handle d’appel (en appelant WlanCloseHandle avec le paramètre hClientHandle ) ou si le processus se termine.
Pour recevoir ces notifications, un client doit appeler cette fonction avec un paramètre pDevSvcGuidList valide et doit également appeler la fonction WlanRegisterNotification avec un argument dwNotifSourcede WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE (défini dans wlanapi.h
). L’inscription pour recevoir des notifications pour les services d’appareil est en vigueur jusqu’à ce que l’application ferme le handle client (en appelant WlanCloseHandle avec le paramètre hClientHandle ), ou que le processus se termine, ou que WlanRegisterDeviceServiceNotification soit appelé avec un argument pDevSvcGuidList de nullptr
, ou que dwNumberOfItems ait la valeur 0.
Lorsque le système d’exploitation reçoit une notification de service d’appareil d’un pilote IHV (Fournisseur de matériel indépendant) et qu’un client s’est inscrit pour ces notifications à l’aide de WlanRegisterDeviceServiceNotification, le client les reçoit via le WLAN_NOTIFICATION_CALLBACK qu’il a inscrit par le biais de son appel à WlanRegisterNotification. Ce rappel est appelé pour chaque notification que le client a reçue (avec une mémoire tampon distincte pour chaque notification).
Le membre NotificationSource de la structure WLAN_NOTIFICATION_DATA reçue par la fonction de rappel (autrement dit, le membre de données ) est défini sur WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE. L’objet blob de données, le GUID du service d’appareil et l’opcode associé à cette notification sont présents dans le membre pData du WLAN_NOTIFICATION_DATA, qui pointe vers une structure de type WLAN_DEVICE_SERVICE_NOTIFICATION_DATA.
Notes
Le service WLAN, ou le système d’exploitation, ne case activée pas pour voir si les GUIDdu service d’appareil auxquels le client s’inscrit sont réellement pris en charge par le pilote IHV. Il appartient au client d’interroger les services d’appareil pris en charge à l’aide de l’API WlanGetSupportedDeviceServices s’il en a besoin.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | wlanapi.h |