Hi nitschchedu ,
danke für die Antwort. Ich habe meinen Source geändert.
Es ging ja um die Funktion WlanScan.
Hier die zugehörige Callback-Prozedur:
Delphi-Quellcode:
procedure NotifiCallback(pNotifData:PWLAN_NOTIFICATION_DATA; pContext:PVOID); stdcall;
var
Source:DWord;
begin
if pNotifData<>nil then
begin
Source:=pNotifData.NotificationSource;
if (Source and WLAN_NOTIFICATION_SOURCE_ALL) > 0 then
begin
case pNotifData^.NotificationCode of
wlan_notification_acm_scan_complete:
begin
SetEvent(THandle(pContext^)); // hier Pointer !!!
end;
end; // case pNotifData^.NotificationCode of
end; // if pNotifData^.NotificationSource of
SetEvent(THandle(pContext^)); // <-- diese Änderung <-- !!!
end; // if pNotifData<>nil
end; // function NotifiCallback
Bei mir zeigt sich die Sache aber nicht so richtig zufriedenstellend:
1. Wird ohne verbundenes Wlan gescannt, so wird die Callback-Prozedur aufgerufen.
Ich erwarte aber für pNotifData^.NotificationCode:
wlan_notification_acm_scan_complete
Nur leider sehe ich beim Debug den Code 21, das ist wlan_notification_acm_disconnected.
Disconnected ist ja auch richtig, aber darauf habe ich nicht gewartet
und Scancomplete sehe ich nicht.
2. Wird mit verbundenem Wlan gescannt, so wird die Callback-Prozedur bei mir nicht aufgerufen.
Das ist meines Erachtens nicht ok. Im Microsoft-Forum habe ich darüber gefunden,
das häufiges Scannen die Netzwerkübertragungsleistung mindert.
Wenn das so ist, ist der Client ja mit dem Wlan verbunden.
Nur ich sehe das Ereignis wlan_notification_acm_scan_complete nicht, da die
Callback-Prozedur gar nicht aufgerufen wird.
Was meinst Du dazu?
Grüße jogging_cat