Protocol driver bind above the Microsoft Native Wi-Fi filter. One of the tasks of the Microsoft Native Wi-Fi filter is LAN emulation (LANE). It converts native 802.11 traffic to 802.3.
IOW: Protocols will only see 802.3 packets. Native 802.11 packets are only observable below the Microsoft Native Wi-Fi filter.
You can write a NDIS 6 monitoring lightweight filter (LWF) and monitor the exchanges between native 802.11 miniports and the Microsoft native Wi-Fi filter. Below is an example of several typical packets seen with a NDIS 6 monitoring LWF.
Good luck,
Thomas F. Divine
http://www.pcausa.com
=================================================
Inbound packet block pkt # 15, 10 bytes
000000: D4 00 00 00 00 0E 2E 81 : AD E5 …
Control Frame/Acknowledgement
Bozo: 56
Frequency: 2462
RSSI : -65
Dump of DOT11_EXTSTA_RECV_CONTEXT:
000000: 10 00 00 00 80 01 30 00 : 00 00 00 00 00 00 00 00 …0…
000010: 9E 09 00 00 01 00 00 00 : BF FF FF FF 30 00 00 00 …0…
000020: 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 …
000030: 00 00 00 00 : …
Inbound packet block pkt # 16, 193 bytes
000000: 08 02 00 00 01 00 5E 7F : FF FA 00 1D 60 BE BC E4 …^…`…
000010: 00 0E 2E 81 AD E5 D0 54 : AA AA 03 00 00 00 08 00 …T…
000020: 45 00 00 A1 00 AA 00 00 : 01 11 00 9B C0 A8 07 65 E…e
000030: EF FF FF FA E8 44 07 6C : 00 8D B1 31 4D 2D 53 45 …D.l…1M-SE
000040: 41 52 43 48 20 2A 20 48 : 54 54 50 2F 31 2E 31 0D ARCH * HTTP/1.1.
000050: 0A 48 6F 73 74 3A 32 33 : 39 2E 32 35 35 2E 32 35 .Host:239.255.25
000060: 35 2E 32 35 30 3A 31 39 : 30 30 0D 0A 53 54 3A 75 5.250:1900…ST:u
000070: 72 6E 3A 73 63 68 65 6D : 61 73 2D 75 70 6E 70 2D rn:schemas-upnp-
000080: 6F 72 67 3A 64 65 76 69 : 63 65 3A 49 6E 74 65 72 org:device:Inter
000090: 6E 65 74 47 61 74 65 77 : 61 79 44 65 76 69 63 65 netGatewayDevice
0000A0: 3A 31 0D 0A 4D 61 6E 3A : 22 73 73 64 70 3A 64 69 :1…Man:“ssdp:di
0000B0: 73 63 6F 76 65 72 22 0D : 0A 4D 58 3A 33 0D 0A 0D scover”…MX:3…
0000C0: 0A : …
Data Frame/Data
Frequency: 2462
RSSI : -63
Dump of DOT11_EXTSTA_RECV_CONTEXT:
000000: 10 00 00 00 80 01 30 00 : 00 00 00 00 00 00 00 00 …0…
000010: 9E 09 00 00 01 00 00 00 : C1 FF FF FF 02 00 00 00 …
000020: 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 …
000030: 00 00 00 00 : …
Inbound packet block pkt # 17, 430 bytes
000000: 08 02 2C 00 00 0E 2E 81 : AD E5 00 1D 60 BE BC E4 …,…... 000010: 00 1D 60 BE BC E4 E0 54 : AA AA 03 00 00 00 08 00 ..
…T…
000020: 45 00 01 8E 00 00 40 00 : 40 11 A8 CD C0 A8 07 DC E…@.@…
000030: C0 A8 07 65 07 6C E8 44 : 01 7A F8 8B 48 54 54 50 …e.l.D.z…HTTP
000040: 2F 31 2E 31 20 32 30 30 : 20 4F 4B 0D 0A 53 54 3A /1.1 200 OK…ST:
000050: 75 72 6E 3A 73 63 68 65 : 6D 61 73 2D 75 70 6E 70 urn:schemas-upnp
000060: 2D 6F 72 67 3A 64 65 76 : 69 63 65 3A 49 6E 74 65 -org:device:Inte
000070: 72 6E 65 74 47 61 74 65 : 77 61 79 44 65 76 69 63 rnetGatewayDevic
000080: 65 3A 31 0D 0A 55 53 4E : 3A 75 75 69 64 3A 30 30 e:1…USN:uuid:00
000090: 31 64 36 30 62 65 2D 62 : 63 65 34 2D 30 30 31 64 1d60be-bce4-001d
0000A0: 2D 36 30 62 65 2D 62 63 : 65 34 30 30 32 30 35 34 -60be-bce4002054
0000B0: 30 30 3A 3A 75 72 6E 3A : 73 63 68 65 6D 61 73 2D 00:
schemas-
0000C0: 75 70 6E 70 2D 6F 72 67 : 3A 64 65 76 69 63 65 3A upnp-org:device:
0000D0: 49 6E 74 65 72 6E 65 74 : 47 61 74 65 77 61 79 44 InternetGatewayD
0000E0: 65 76 69 63 65 3A 31 0D : 0A 4C 6F 63 61 74 69 6F evice:1…Locatio
0000F0: 6E 3A 20 68 74 74 70 3A : 2F 2F 31 39 32 2E 31 36 n: http://192.16
000100: 38 2E 37 2E 32 32 30 3A : 35 34 33 31 2F 64 79 6E 8.7.220:5431/dyn
000110: 64 65 76 2F 75 75 69 64 : 3A 30 30 31 64 36 30 62 dev/uuid:001d60b
000120: 65 2D 62 63 65 34 2D 30 : 30 31 64 2D 36 30 62 65 e-bce4-001d-60be
000130: 2D 62 63 65 34 30 30 32 : 30 35 34 30 30 0D 0A 53 -bce400205400…S
000140: 65 72 76 65 72 3A 20 43 : 75 73 74 6F 6D 2F 31 2E erver: Custom/1.
000150: 30 20 55 50 6E 50 2F 31 : 2E 30 20 50 72 6F 63 2F 0 UPnP/1.0 Proc/
000160: 56 65 72 0D 0A 45 58 54 : 3A 0D 0A 43 61 63 68 65 Ver…EXT:…Cache
000170: 2D 43 6F 6E 74 72 6F 6C : 3A 6D 61 78 2D 61 67 65 -Control:max-age
000180: 3D 31 38 30 30 0D 0A 44 : 41 54 45 3A 20 54 68 75 =1800…DATE: Thu
000190: 2C 20 30 31 20 4A 61 6E : 20 31 39 37 30 20 30 30 , 01 Jan 1970 00
0001A0: 3A 30 37 3A 34 35 20 47 : 4D 54 0D 0A 0D 0A :07:45 GMT…
Data Frame/Data
Frequency: 2462
RSSI : -65
Dump of DOT11_EXTSTA_RECV_CONTEXT:
000000: 10 00 00 00 80 01 30 00 : 00 00 00 00 00 00 00 00 …0…
000010: 9E 09 00 00 01 00 00 00 : BF FF FF FF 6C 00 00 00 …l…
000020: 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 …
000030: 00 00 00 00 : …
Inbound packet block pkt # 18, 87 bytes
000000: 80 00 00 00 FF FF FF FF : FF FF 00 18 F8 65 A5 73 …e.s
000010: 00 18 F8 65 A5 73 10 C3 : 87 B1 E6 8C C2 00 00 00 …e.s…
000020: 64 00 11 04 00 07 44 65 : 76 79 61 6E 69 01 08 82 d…Devyani…
000030: 84 8B 96 24 30 48 6C 03 : 01 0B 05 04 00 01 00 00 …$0Hl…
000040: 2A 01 04 2F 01 04 32 04 : 0C 12 18 60 DD 09 00 10 *…/…2…`…
000050: 18 02 00 F4 00 00 00 : …
Management/Beacon
Frequency: 2462
RSSI : -89
Dump of DOT11_EXTSTA_RECV_CONTEXT:
000000: 10 00 00 00 80 01 30 00 : 00 00 00 00 00 00 00 00 …0…
000010: 9E 09 00 00 01 00 00 00 : A7 FF FF FF 02 00 00 00 …
000020: 00 00 00 00 00 00 00 00 : 00 00 00 00 00 00 00 00 …
000030: 00 00 00 00 : …
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-329587-
xxxxx@lists.osr.com] On Behalf Of xxxxx@hotmail.com
Sent: Monday, July 07, 2008 5:26 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] ndis 6 802.11 mac header
I have a network card capable of indicating 802.11 frames with Vista in
EXTENSIBLE_STATION and netmon mode. Can a ndis 6 protocol or filter
driver retrieve the mac header with out reassembling the mpdu fragments
into msdu packets? If so, is there a way to get mac headers, in the
ndisprot example, if I set OID_GEN_CURRENT_PACKET_FILTER to
NDIS_PACKET_TYPE_PROMISCUOUS
NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT
NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL
I looked at the native miniport driver, but it looks 10x’s more complex
than the ndisprot example or the lwf example.
For the ndisprot example, I tried changing the packet filter to the
values above and changing the ethernet header to a mac header. I
printed out the duration field in the mac header that I got from the
net_buffer, but it was not a correct integer value for a duration
field. I don’t know what it was retrieving. I’m thinking the
net_buffer was still indicating the 802.3 header or some other header.