WLAN Signalstärke ermitteln in C/C++

Hallo moin,

bin mir nicht sicher, ob schon mal gefragt… Gibt es eine Möglichkeit, die Signalstärke zu ermitteln, indem man Treiber selber schreibt, Bits hin und her schubst und mit dem BS zugreift, möglichst low-level und hardwarenah, in C/C++, in Windows und das WLAN Protokoll implementiert?

Ich möchte keine Funktion aufrufen #getSignalStrength(), wie hier beschrieben: windows - C# - How do I access the WLAN signal strength and others? - Stack Overflow

Wieso? Da steht ganz oft using… Das ist eine Aufgabe, die “eigentlich” das BS übernimmt, aber auch die müssen das ja irgendwann mal implementiert haben.

Es ist wichtig, dass ich einzelne Bits und Bytes hin und her schubse. Ich weiß, dass es da sehr ins Eingemachte geht.

Der WLAN Stick der Firma Xyz wäre über USB 2 mit Computer verbunden - das wären erst mal alle Infos.

In zwei Wochen schreibe ich über so etwas Ähnliches eine Prüfung . . . mir ist jede Hilfe willkommen.

mfG

Du kannst dir mal den Quellcode von ReactOS anschauen. Es scheinen da sogar eine WLan-Karten unterstützt zu sein: https://www.reactos.org/wiki/Supported_Hardware/Wireless_Network_cards

Edit

Ah, nein die WLan Treiber sind nicht Open-Source, aber man kann sich die Kommunikation zwischen Betriebsystem und Treiber anschauen. Wenn du dir Treiber anschauen willst, dann müsstest du wohl zum Linux Kernel greifen.

Welche betreffenden Klassen sind es denn? Mal ganz unverfroren gefragt (ohne die nötige Zurückhaltung und Höflichkeit).

Das scheint die dahinterliegende Source File der ReactOS (WIN32) W-Lan API zu sein: https://github.com/reactos/reactos/blob/master/reactos/dll/win32/wlanapi/main.c Sieht aber auch nicht ordentlich implementiert aus.

*** Edit ***

Vielleicht würde dieses Buch helfen: https://www.amazon.de/Windows-Internals-Developer-Reference-Paperback/dp/0735648735/

Wieder unverfroren: Ich seh nicht, wo da Bits hin und her geschubst werden… 1000 includes und 1000 defines. Alles viel zu High Level… Das werd ich bestimmt nicht gefragt werden.

Ich bräucht im Prinzip einen (low-level) Mikrocontroller-Treiber in C ohne auch nur ein include (okay, doch einige schon, aber nur sehr wenige include) - ohne auch nur irgendwas über den Mikrocontroller und Spezifikation zu kennen.

Wahrscheinlich kommt jetzt als Antwort, das wäre zu schwer, sei’s drum.

Windows oder Linux, jetzt? Für dein spezifisches Gerät findet man sicher einen Treiber im Linux-Kernel, sofern er nicht proprietär ist. Daher würde ich eigentlich Linux bevorzugen, um die Funktionsweise von W-Lan Treibern zu studieren. Der W-Lan Treiber meines Notebooks zumindest heißt im Linux-Kernel ath9k (ermittelt mit lspci -k).

Btw: Der Link, der zum ReactOS Source Code führt, ist größtenteils nicht implementiert und somit nicht funktionsfähig und anscheinend gibt es Treiber, die ohne die Win32 Wlan API auskommen.

Naja, beides wäre gut. Teilweise dürfen wir es uns aussuchen.

Mal eine blöde Frage von mir, was ist das für eine Prüfung?
Normalerweise hat man doch ein Script oder andere Unterlagen wo genau festgelegt wurde was geprüft wird und was nicht. Ich kann mir ja nicht wriklich vorstellen, dass es da eine algemein gültige Antwort überhaupt gibt.
Da wird jeder WLAN-karten, byw WLAN Stick hersteller sein eigenes Süppchen kochen. Und wenn ich mir da mdikies link ansehe mit den vielen Files, wird es wohl auch nicht so einfach sein., als dass sowas überhaupt in einer Prüfung ab geprüft werden kann.

DAS hört er gar nicht gerne, wenn ich sage, ist zu umfangreich. Doch, wir haben ein Skript, > 500 Seiten aufwärts. Naja, ich werde mich da durchwurschteln (eine Aufgabe ohne besondere Kompetenz bewältigen :frowning: ). Sorry, wenn ich euch namit genervt hab.

Ist denn Windows Internals zu empfehlen? Kann man es gut lesen - oder ist das Ansichtssache? Ich weiß, wenn man bei Windows anfängt, wird man nicht sofort am BS/Windows 10 rumbasteln können, sondern nie/Jahre später/erst mal eine App schreiben zum Bleistift.

Man wird auch seeehr sehr lange nicht nach Redmond dürfen - oder allerhöchstens mal von außen anschauen. :stuck_out_tongue: :stumm:

Danke für eure Hilfe dennoch.

Naja App schreiben und Kernel programmieren hat, soweit ich gehört habe, wenig miteinander zu tun. Man kann das sicher getrennt von der App-Entwicklung lernen. Empfehlen? Ich weiß nicht, es stand jedenfalls auf der ReactOS Webseite und es scheint eine nützliche Einführung in Windows Kernelprogrammierung zu sein.