-               
-               #include <LUFA/Drivers/USB/USB.h>
-               
-               #include "RNDISConstants.h"
-
-       /* Type Defines: */
-               /** Type define for a RNDIS message header, sent before RNDIS messages. */
-               typedef struct
-               {
-                       uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */
-                       uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */
-               } RNDIS_Message_Header_t;
-
-               /** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter. */
-               typedef struct
-               {
-                       uint32_t MessageType;
-                       uint32_t MessageLength;
-                       uint32_t DataOffset;
-                       uint32_t DataLength;
-                       uint32_t OOBDataOffset;
-                       uint32_t OOBDataLength;
-                       uint32_t NumOOBDataElements;
-                       uint32_t PerPacketInfoOffset;
-                       uint32_t PerPacketInfoLength;
-                       uint32_t VcHandle;
-                       uint32_t Reserved;
-               } RNDIS_Packet_Message_t;
-       
-               /** Type define for a RNDIS Initialize command message. */
-               typedef struct
-               {
-                       uint32_t MessageType;
-                       uint32_t MessageLength;
-                       uint32_t RequestId;
-                       
-                       uint32_t MajorVersion;
-                       uint32_t MinorVersion;
-                       uint32_t MaxTransferSize;
-               } RNDIS_Initialize_Message_t;
-               
-               /** Type define for a RNDIS Initialize complete response message. */
-               typedef struct
-               {
-                       uint32_t MessageType;
-                       uint32_t MessageLength;
-                       uint32_t RequestId;
-                       uint32_t Status;
-                       
-                       uint32_t MajorVersion;
-                       uint32_t MinorVersion;
-                       uint32_t DeviceFlags;
-                       uint32_t Medium;
-                       uint32_t MaxPacketsPerTransfer;
-                       uint32_t MaxTransferSize;
-                       uint32_t PacketAlignmentFactor;
-                       uint32_t AFListOffset;
-                       uint32_t AFListSize;
-               } RNDIS_Initialize_Complete_t;
-               
-               /** Type define for a RNDIS Keepalive command message. */
-               typedef struct
-               {
-                       uint32_t MessageType;
-                       uint32_t MessageLength;
-                       uint32_t RequestId;
-               } RNDIS_KeepAlive_Message_t;