I am developing a Miniport device driver for an 82574l based NIC on Windows CE 5.0, using NDIS 5.1. Transmission setup works OK and the NIC transmits OK. I setup receive as the documentation dictates:
- Allocated a region of memory for legacy receive descriptor list using NdisMAllocateSharedMemory and setup a descriptor ring.
- Setup receive buffers of appropriate size and allocated and pointers to these buffers and stored these in each descriptor in the descriptor ring.
- Programed the descriptor base address with the address of the descriptor ring.
- Set the length register to the size of the descriptor ring.
However the when I process receive related interrupts the memory buffers pointed to by the memory allocations I got from NDIS point to regions filled with 0s. Using the diagnostic registers it shows that data was received and the Receive Data FIFO Packet Count register indicates how many packets were received and analyzing the RX FIFO PBM region seems good. So I must be doing something really bad when setting up my RX registers to not be able to handle RX packets. I will gladly provide my code to anybody who can help me.