- /* Macros: */\r
- /** Implemented RNDIS Version Major */\r
- #define REMOTE_NDIS_VERSION_MAJOR 0x01\r
-\r
- /** Implemented RNDIS Version Minor */\r
- #define REMOTE_NDIS_VERSION_MINOR 0x00\r
- \r
- /** RNDIS request to issue a host-to-device NDIS command */\r
- #define REQ_SendEncapsulatedCommand 0x00\r
-\r
- /** RNDIS request to issue a device-to-host NDIS response */\r
- #define REQ_GetEncapsulatedResponse 0x01\r
- \r
- #define RNDIS_MESSAGE_BUFFER_SIZE 128\r
-\r
- #define ETHERNET_FRAME_SIZE_MAX 1500\r
- \r
- #define NOTIF_ResponseAvailable 1\r
- \r
- /* Enums: */\r
- /** Enum for the possible NDIS adapter states. */\r
- enum RNDIS_States_t\r
- {\r
- RNDIS_Uninitialized = 0, /**< Adapter currently uninitialized */\r
- RNDIS_Initialized = 1, /**< Adapter currently initialized but not ready for data transfers */\r
- RNDIS_Data_Initialized = 2, /**< Adapter currently initialized and ready for data transfers */\r
- };\r
-\r
- /** Enum for the NDIS hardware states */\r
- enum NDIS_Hardware_Status_t\r
- {\r
- NdisHardwareStatusReady, /**< Hardware Ready to accept commands from the host */\r
- NdisHardwareStatusInitializing, /**< Hardware busy initializing */\r
- NdisHardwareStatusReset, /**< Hardware reset */\r
- NdisHardwareStatusClosing, /**< Hardware currently closing */\r
- NdisHardwareStatusNotReady /**< Hardware not ready to accept commands from the host */\r
- };\r
- \r
- /* Type Defines: */\r
- /** Type define for a physical MAC address of a device on a network */\r
- typedef struct\r
- {\r
- uint8_t Octets[6]; /**< Individual bytes of a MAC address */\r
- } MAC_Address_t;\r
-\r
- /** Type define for a RNDIS message header, sent before RNDIS messages */\r
- typedef struct\r
- {\r
- uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */\r
- uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */\r
- } RNDIS_Message_Header_t;\r
-\r
- /** Type define for an Ethernet frame buffer. */\r
- typedef struct\r
- {\r
- uint8_t FrameData[ETHERNET_FRAME_SIZE_MAX]; /**< Ethernet frame contents */\r
- uint16_t FrameLength; /**< Length in bytes of the Ethernet frame stored in the buffer */\r
- bool FrameInBuffer; /**< Indicates if a frame is currently stored in the buffer */\r
- } Ethernet_Frame_Info_t;\r
-\r
- /** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter */\r
- typedef struct\r
- {\r
- uint32_t MessageType;\r
- uint32_t MessageLength;\r
- uint32_t DataOffset;\r
- uint32_t DataLength;\r
- uint32_t OOBDataOffset;\r
- uint32_t OOBDataLength;\r
- uint32_t NumOOBDataElements;\r
- uint32_t PerPacketInfoOffset;\r
- uint32_t PerPacketInfoLength;\r
- uint32_t VcHandle;\r
- uint32_t Reserved;\r
- } RNDIS_PACKET_MSG_t;\r
-\r
- typedef struct\r
- {\r
- uint8_t ControlInterfaceNumber; /**< Interface number of the CDC control interface within the device */\r
-\r
- uint8_t DataINEndpointNumber; /**< Endpoint number of the CDC interface's IN data endpoint */\r
- uint16_t DataINEndpointSize; /**< Size in bytes of the CDC interface's IN data endpoint */\r
-\r
- uint8_t DataOUTEndpointNumber; /**< Endpoint number of the CDC interface's OUT data endpoint */\r
- uint16_t DataOUTEndpointSize; /**< Size in bytes of the CDC interface's OUT data endpoint */\r
-\r
- uint8_t NotificationEndpointNumber; /**< Endpoint number of the CDC interface's IN notification endpoint, if used */\r
- uint16_t NotificationEndpointSize; /**< Size in bytes of the CDC interface's IN notification endpoint, if used */\r
+ /* Public Interface - May be used in end-application: */\r
+ /* Type Defines: */\r
+ /** Configuration information structure for \ref USB_ClassInfo_RNDIS_Device_t RNDIS device interface structures. */\r
+ typedef struct\r
+ {\r
+ uint8_t ControlInterfaceNumber; /**< Interface number of the CDC control interface within the device */\r
+\r
+ uint8_t DataINEndpointNumber; /**< Endpoint number of the CDC interface's IN data endpoint */\r
+ uint16_t DataINEndpointSize; /**< Size in bytes of the CDC interface's IN data endpoint */\r
+\r
+ uint8_t DataOUTEndpointNumber; /**< Endpoint number of the CDC interface's OUT data endpoint */\r
+ uint16_t DataOUTEndpointSize; /**< Size in bytes of the CDC interface's OUT data endpoint */\r
+\r
+ uint8_t NotificationEndpointNumber; /**< Endpoint number of the CDC interface's IN notification endpoint, if used */\r
+ uint16_t NotificationEndpointSize; /**< Size in bytes of the CDC interface's IN notification endpoint, if used */\r
+ \r
+ char* AdapterVendorDescription; /**< String description of the adapter vendor */\r
+ MAC_Address_t AdapterMACAddress; /**< MAC address of the adapter */\r
+ } USB_ClassInfo_MS_Device_Config_t;\r