Data Structures | Functions

RNDIS Class Device Mode Driver
[RNDIS (Networking) Class Driver]

Data Structures

struct  USB_ClassInfo_RNDIS_Device_t
 RNDIS Class Device Mode Configuration and State Structure. More...

Functions

bool RNDIS_Device_ConfigureEndpoints (USB_ClassInfo_RNDIS_Device_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void RNDIS_Device_ProcessControlRequest (USB_ClassInfo_RNDIS_Device_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void RNDIS_Device_USBTask (USB_ClassInfo_RNDIS_Device_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

Module Source Dependencies

The following files must be built with any user project that uses this module:

Description

Device Mode USB Class driver framework interface, for the RNDIS USB Class driver.


Function Documentation

bool RNDIS_Device_ConfigureEndpoints ( USB_ClassInfo_RNDIS_Device_t *const   RNDISInterfaceInfo )

Configures the endpoints of a given RNDIS interface, ready for use. This should be linked to the library EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the given HID interface is selected.

Note:
The endpoint index numbers as given in the interface's configuration structure must not overlap with any other interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
Parameters:
[in,out]RNDISInterfaceInfoPointer to a structure containing a RNDIS Class configuration and state.
Returns:
Boolean true if the endpoints were successfully configured, false otherwise.
void RNDIS_Device_ProcessControlRequest ( USB_ClassInfo_RNDIS_Device_t *const   RNDISInterfaceInfo )

Processes incoming control requests from the host, that are directed to the given RNDIS class interface. This should be linked to the library EVENT_USB_Device_ControlRequest() event.

Parameters:
[in,out]RNDISInterfaceInfoPointer to a structure containing a RNDIS Class configuration and state.
void RNDIS_Device_USBTask ( USB_ClassInfo_RNDIS_Device_t *const   RNDISInterfaceInfo )

General management task for a given HID class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().

Parameters:
[in,out]RNDISInterfaceInfoPointer to a structure containing a RNDIS Class configuration and state.