Hi guys,
So, I’ve been writing this deserialized miniport driver, which uses a direct call interface between itself and my bus driver to communicate. The bus driver handles communication over the PCI bus to a card which receives IP data (via an external ASI feed). The IP data is pushed from the card to the bus driver, and will stream up through the direct call interface, into my mp driver, then up through NDIS, and eventually end up in an app listening on a socket.
Currently, I have the upper edge of the mp driver registered w/ NDIS, the direct call interface set up, and it installs as a mp driver correctly (as a child device of my bus driver).
So, I really have no need for the mp driver to handle sending packets down the stack. I just need the IP data to stream up the stack. Is it possible to disable the send functionality alltogether, by nulling out the SendPacketsHandler in the NDIS_MINIPORT_CHARACTERISTICS? Does NDIS require the ability to send packets to the mp driver? Is there anything else that would be required? This will simplify the mp driver, and require less code.
I currently have it wired up, and I see that MPSend() is called for a packet as the mp driver is initializing…Not sure what NDIS is attempting to send out…Evidently it’s something required to bind the procotol?
Also, I’m able to use the direct call interface to query information from the bus driver, like MAC address, and whatever else I will need (IP address maybe).
This brings me to another question, we have a range of MAC addresses to use with our new hardware, and I’ve been wondering if, for the mp driver, if I can pick one MAC address from our range of addresses, and use the same address on every machine (about 2000 of them). I don’t see why this wouldnt’ work, but maybe you guys could pointout pitfalls in using this idea.
What about the IP address? What’s the best solution for coming up w/ a static IP address, since there won’t be any kind of DHCP’d server that our hardware is talking to, to get an IP address? Can I use something like 192.168.1.100? What would happen if another NIC adapter in the system was assigned that IP address by an actual DHCP server? Would it matter since they would have differing MAC addresses?
By the way (and I’m sure it’s obvious) I’m new to mp drivers, NDIS, and how it works…LoL I have a general idea of the network stack, etc., but I’m not sure what info NDIS needs during the configuration stage fo the mp driver.
Thanks for any tips!
Jason