Answered Network Miniport Driver Development issue

  • Monday, February 28, 2011 9:40 AM
     
     

    Hi,

    I'm new to device driver development and gone through  basics of windows driver.

    I need to develop Miniport driver for Wireless NIC card, please suggest me how to approach and

    I know the some of functions like DriverEntry, Add Device, Initialize... etc

All Replies

  • Monday, February 28, 2011 10:35 AM
     
     Answered

    Depends on the schedule of your project and the device itself: is it a 100% new development or adaptation/clone of an existing chip, which has some drivers that you can start with.

    If you have time, start from studying the WDK documentation and samples (esp. src\network\ndis\usbnwifi). Otherwise, find a consultant.

    Regards,
    --pa

  • Tuesday, March 01, 2011 5:14 AM
     
     

    Thank you.

    I need to develop driver for PCI (not for USB). Is there any other source code with explaination ?

    Please suggest me..

  • Tuesday, March 01, 2011 5:17 AM
    Owner
     
     Answered

    you will have to piece together your driver from two samples. the usbnwifi (or athwifi) sample for the wifi part, the xframeii sample for the pci part of it.


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.
  • Tuesday, March 01, 2011 5:30 AM
     
     Answered

    athwifi is also a PCI driver, so you can get pretty far using just that sample.  But the underlying bus is not really the tricky part (and our sample drivers hide the lowest-level bus access inside static libraries anyway). 

    The real complexity (in my opinion) comes from understanding all the many fatures of 802.11 and how to match that up with NDIS's Native WiFi interfaces.  athwifi does a fine job demonstrating all that code.  If you are developing a new wireless driver from scratch, you should start with athwifi.

    If you are brand-new to NDIS driver development, you might want to first do some experimentation/learning with the 'netvmini' sample.  It's a very simple simulated Ethernet interface.  It has no hardware, no bus-specific code, and (being fake-Ethernet) very little media-specific code.  Therefore, it's simple to understand and experiment with.