I\'m doing a project where I must write a network library for a device connected to a Windows machine. The complication comes in that I may only communicate with the device
As well as winpcap and NDIS you could also look at raw sockets which are a standard part of the Windows API and don't require you to write driver code http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx.
Give the WinAoE code a look-see - it says it lets Windows talk to ATA over Ethernet devices which means it has to communicate without any of the upper layers of the network stack.
Edited:
As near as I can tell, if you want to send raw ethernet frames, you want NdisSend and friends.
Use WinPCap, it has an an API to send and listen to raw data.
You can build your communicate layer with it.