transmitting wireless packets while not in connected state?

Hi,

These forums have been great! Lots of good information… Quick question… Is it possible to transmit custom 802.11 or 802.3 packets through a wireless medium using a protocol driver or a filter driver (modifying or monitoring) while not being connected or associated to a wireless network? I can only get sends to work while I’m connected to a wireless access point and get the not connected failure otherwise.

I’m not fully clear what mechanism Windows is using to block packet sends when there is no wireless network connection. It seems it could be a simple matter of putting the miniport into the paused state or perhaps it is NDIS itself blocking them somehow.

In any case, is there a way to get around this? It seems like there MUST be a way to send packets of wireless while being in the disconnect state. After all, you have to transmit packets to get to the connected state in the first place! Thanks!

> Hi,

These forums have been great! Lots of good information… Quick
question… Is
it possible to transmit custom 802.11 or 802.3 packets through a
wireless
medium using a protocol driver or a filter driver (modifying or
monitoring)
while not being connected or associated to a wireless network? I can
only get
sends to work while I’m connected to a wireless access point and get
the not
connected failure otherwise.

I’m not fully clear what mechanism Windows is using to block packet
sends when
there is no wireless network connection. It seems it could be a
simple matter
of putting the miniport into the paused state or perhaps it is NDIS
itself
blocking them somehow.

In any case, is there a way to get around this? It seems like there
MUST be a
way to send packets of wireless while being in the disconnect state.
After
all, you have to transmit packets to get to the connected state in the
first
place! Thanks!

If the wireless network adapter is in ‘infrastructure mode’ (I think
that’s what it’s called - the mode that means it is connected to an
access point and not adhoc mode) then the answer is no. The association
with the access point sets up all the encryption stuff so if you aren’t
associated with an access point then you don’t know how to encrypt the
packet and it just won’t work.

That side of things is normally implemented in the card firmware so it’s
not Windows stopping you sending the packet, it’s really (or logically
at least) the card not acception it.

If you were in adhoc mode (eg laptop to laptop) then it shouldn’t be a
problem… although I’m not so familiar with that side of things.

James

I’m still not having any luck with this, but I have a related question. I had thought before that I was transmitting 802.11 packets but it turns out I was doing ethernet injection because I overlooked what I was actually attaching. The problem is now I get a BSOD when attempting to transmit native 802.11 packets. The closest thing on the board I’ve found to a solution is on the following link, where it seems like the OP was able to transmit certain types of native 802.11 packets except for management frames (unfortunately, no code was posted):
https://www.osronline.com/showThread.CFM?link=134437

My BSOD errors are similar to the ones posted in that thread, sometimes I get a DRIVER_IRQL_NOT_LESS_OR_EQUAL BSOD as well. I followed the solutions suggested on that thread but I can’t for the life of me get anything to transmit using NdisFSendNetBufferList without BSODing. It even BSODs when I transmit at 802.3 encapsulation. I’ve tried copying and sending packets that NDIS passes to my filter and even that BSOD’s. My only guess is that I must be doing something wrong when creating the NET_BUFFER_LIST, but I’ve scoured the documentation and feel like I’ve tried every little tweak possible to get this to work, but no luck.

One attempt I tried was to follow a similar approach ndisprot takes to transmitting packets, but for a Filter driver instead of a protocol driver and still had no luck. Interestingly, when I try to send wireless using ndisprot, the packets are being passed to their send complete function as successfully being sent, but using a packet sniffer on another computer, I can see that no packets are actually being sent. What could be causing this?

Any suggestions for any of these questions would be appreciated! I’m about to pull my hair out on this one!