mikroSDK Reference Manual

Data Structures

struct  rndis_msg_initialize_t
 Initialize Message. More...
 
struct  rndis_msg_initialize_cmplt_t
 Initialize Complete Message. More...
 
struct  rndis_msg_query_t
 Query Message. More...
 
struct  rndis_msg_query_cmplt_t
 Query Complete Message. More...
 
struct  rndis_msg_reset_t
 Reset Message. More...
 
struct  rndis_msg_reset_cmplt_t
 Reset Complete Message. More...
 
struct  rndis_msg_keep_alive_t
 Keep Alive Message. More...
 
struct  rndis_msg_set_cmplt_t
 Set Complete Message. More...
 
struct  rndis_msg_packet_t
 Packet Data Message. More...
 
struct  rndis_msg_out_of_band_data_t
 

Typedefs

typedef struct rndis_msg_query_t rndis_msg_set_t
 
typedef struct rndis_msg_keep_alive_t rndis_msg_halt_t
 
typedef struct rndis_msg_set_cmplt_t rndis_msg_keep_alive_cmplt_t
 
typedef struct rndis_msg_out_of_band_data_t rndis_msg_per_packet_info_t
 

Enumerations

enum  rndis_msg_type_t {
  RNDIS_MSG_PACKET = 0x00000001UL , RNDIS_MSG_INITIALIZE = 0x00000002UL , RNDIS_MSG_INITIALIZE_CMPLT = 0x80000002UL , RNDIS_MSG_HALT = 0x00000003UL ,
  RNDIS_MSG_QUERY = 0x00000004UL , RNDIS_MSG_QUERY_CMPLT = 0x80000004UL , RNDIS_MSG_SET = 0x00000005UL , RNDIS_MSG_SET_CMPLT = 0x80000005UL ,
  RNDIS_MSG_RESET = 0x00000006UL , RNDIS_MSG_RESET_CMPLT = 0x80000006UL , RNDIS_MSG_INDICATE_STATUS = 0x00000007UL , RNDIS_MSG_KEEP_ALIVE = 0x00000008UL ,
  RNDIS_MSG_KEEP_ALIVE_CMPLT = 0x80000008UL
}
 RNDIS Message Types. More...
 
enum  rndis_msg_status_t {
  RNDIS_STATUS_SUCCESS = 0x00000000UL , RNDIS_STATUS_FAILURE = 0xC0000001UL , RNDIS_STATUS_INVALID_DATA = 0xC0010015UL , RNDIS_STATUS_NOT_SUPPORTED = 0xC00000BBUL ,
  RNDIS_STATUS_MEDIA_CONNECT = 0x4001000BUL , RNDIS_STATUS_MEDIA_DISCONNECT = 0x4001000CUL
}
 RNDIS Message Status Values. More...
 
enum  rndis_oid_type_t {
  RNDIS_OID_GEN_SUPPORTED_LIST = 0x00010101 , RNDIS_OID_GEN_HARDWARE_STATUS = 0x00010102 , RNDIS_OID_GEN_MEDIA_SUPPORTED = 0x00010103 , RNDIS_OID_GEN_MEDIA_IN_USE = 0x00010104 ,
  RNDIS_OID_GEN_MAXIMUM_LOOKAHEAD = 0x00010105 , RNDIS_OID_GEN_MAXIMUM_FRAME_SIZE = 0x00010106 , RNDIS_OID_GEN_LINK_SPEED = 0x00010107 , RNDIS_OID_GEN_TRANSMIT_BUFFER_SPACE = 0x00010108 ,
  RNDIS_OID_GEN_RECEIVE_BUFFER_SPACE = 0x00010109 , RNDIS_OID_GEN_TRANSMIT_BLOCK_SIZE = 0x0001010A , RNDIS_OID_GEN_RECEIVE_BLOCK_SIZE = 0x0001010B , RNDIS_OID_GEN_VENDOR_ID = 0x0001010C ,
  RNDIS_OID_GEN_VENDOR_DESCRIPTION = 0x0001010D , RNDIS_OID_GEN_CURRENT_PACKET_FILTER = 0x0001010E , RNDIS_OID_GEN_CURRENT_LOOKAHEAD = 0x0001010F , RNDIS_OID_GEN_DRIVER_VERSION = 0x00010110 ,
  RNDIS_OID_GEN_MAXIMUM_TOTAL_SIZE = 0x00010111 , RNDIS_OID_GEN_PROTOCOL_OPTIONS = 0x00010112 , RNDIS_OID_GEN_MAC_OPTIONS = 0x00010113 , RNDIS_OID_GEN_MEDIA_CONNECT_STATUS = 0x00010114 ,
  RNDIS_OID_GEN_MAXIMUM_SEND_PACKETS = 0x00010115 , RNDIS_OID_GEN_VENDOR_DRIVER_VERSION = 0x00010116 , RNDIS_OID_GEN_SUPPORTED_GUIDS = 0x00010117 , RNDIS_OID_GEN_NETWORK_LAYER_ADDRESSES = 0x00010118 ,
  RNDIS_OID_GEN_TRANSPORT_HEADER_OFFSET = 0x00010119 , RNDIS_OID_GEN_MEDIA_CAPABILITIES = 0x00010201 , RNDIS_OID_GEN_PHYSICAL_MEDIUM = 0x00010202 , RNDIS_OID_802_3_PERMANENT_ADDRESS = 0x01010101 ,
  RNDIS_OID_802_3_CURRENT_ADDRESS = 0x01010102 , RNDIS_OID_802_3_MULTICAST_LIST = 0x01010103 , RNDIS_OID_802_3_MAXIMUM_LIST_SIZE = 0x01010104
}
 NDIS Object ID. More...
 
enum  rndis_packet_filter_type_t {
  RNDIS_PACKET_TYPE_DIRECTED = 0x00000001 , RNDIS_PACKET_TYPE_MULTICAST = 0x00000002 , RNDIS_PACKET_TYPE_ALL_MULTICAST = 0x00000004 , RNDIS_PACKET_TYPE_BROADCAST = 0x00000008 ,
  RNDIS_PACKET_TYPE_SOURCE_ROUTING = 0x00000010 , RNDIS_PACKET_TYPE_PROMISCUOUS = 0x00000020 , RNDIS_PACKET_TYPE_SMT = 0x00000040 , RNDIS_PACKET_TYPE_ALL_LOCAL = 0x00000080 ,
  RNDIS_PACKET_TYPE_GROUP = 0x00001000 , RNDIS_PACKET_TYPE_ALL_FUNCTIONAL = 0x00002000 , RNDIS_PACKET_TYPE_FUNCTIONAL = 0x00004000 , RNDIS_PACKET_TYPE_MAC_FRAME = 0x00008000 ,
  RNDIS_PACKET_TYPE_NO_LOCAL = 0x00010000
}
 RNDIS Packet Filter Bits RNDIS_OID_GEN_CURRENT_PACKET_FILTER. More...
 

Functions list

 TU_VERIFY_STATIC (sizeof(rndis_msg_query_t)==28, "Make sure flexible array member does not affect layout")
 
 TU_VERIFY_STATIC (sizeof(rndis_msg_query_cmplt_t)==24, "Make sure flexible array member does not affect layout")
 

Enumeration Type Documentation

◆ rndis_msg_status_t

Enumerator
RNDIS_STATUS_SUCCESS 

Success.

RNDIS_STATUS_FAILURE 

Unspecified error.

RNDIS_STATUS_INVALID_DATA 

Invalid data error.

RNDIS_STATUS_NOT_SUPPORTED 

Unsupported request error.

RNDIS_STATUS_MEDIA_CONNECT 

Device is connected to a network medium.

RNDIS_STATUS_MEDIA_DISCONNECT 

Device is disconnected from the medium.

◆ rndis_msg_type_t

Enumerator
RNDIS_MSG_PACKET 

The host and device use this to send network data to one another.

RNDIS_MSG_INITIALIZE 

Sent by the host to initialize the device.

RNDIS_MSG_INITIALIZE_CMPLT 

Device response to an initialize message.

RNDIS_MSG_HALT 

Sent by the host to halt the device. This does not have a response. It is optional for the device to send this message to the host.

RNDIS_MSG_QUERY 

Sent by the host to send a query OID.

RNDIS_MSG_QUERY_CMPLT 

Device response to a query OID.

RNDIS_MSG_SET 

Sent by the host to send a set OID.

RNDIS_MSG_SET_CMPLT 

Device response to a set OID.

RNDIS_MSG_RESET 

Sent by the host to perform a soft reset on the device.

RNDIS_MSG_RESET_CMPLT 

Device response to reset message.

RNDIS_MSG_INDICATE_STATUS 

Sent by the device to indicate its status or an error when an unrecognized message is received.

RNDIS_MSG_KEEP_ALIVE 

During idle periods, sent every few seconds by the host to check that the device is still responsive. It is optional for the device to send this message to check if the host is active.

RNDIS_MSG_KEEP_ALIVE_CMPLT 

The device response to a keepalivemessage. The host can respond with this message to a keepalive message from the device when the device implements the optional KeepAliveTimer.

◆ rndis_oid_type_t

Enumerator
RNDIS_OID_GEN_SUPPORTED_LIST 

List of supported OIDs.

RNDIS_OID_GEN_HARDWARE_STATUS 

Hardware status.

RNDIS_OID_GEN_MEDIA_SUPPORTED 

Media types supported (encoded)

RNDIS_OID_GEN_MEDIA_IN_USE 

Media types in use (encoded)

RNDIS_OID_GEN_MAXIMUM_FRAME_SIZE 

Maximum frame size in bytes.

RNDIS_OID_GEN_LINK_SPEED 

Link speed in units of 100 bps.

RNDIS_OID_GEN_TRANSMIT_BUFFER_SPACE 

Transmit buffer space.

RNDIS_OID_GEN_RECEIVE_BUFFER_SPACE 

Receive buffer space.

RNDIS_OID_GEN_TRANSMIT_BLOCK_SIZE 

Minimum amount of storage, in bytes, that a single packet occupies in the transmit buffer space of the NIC.

RNDIS_OID_GEN_RECEIVE_BLOCK_SIZE 

Amount of storage, in bytes, that a single packet occupies in the receive buffer space of the NIC.

RNDIS_OID_GEN_VENDOR_ID 

Vendor NIC code.

RNDIS_OID_GEN_VENDOR_DESCRIPTION 

Vendor network card description.

RNDIS_OID_GEN_CURRENT_PACKET_FILTER 

Current packet filter (encoded)

RNDIS_OID_GEN_CURRENT_LOOKAHEAD 

Current lookahead size in bytes.

RNDIS_OID_GEN_DRIVER_VERSION 

NDIS version number used by the driver.

RNDIS_OID_GEN_MAXIMUM_TOTAL_SIZE 

Maximum total packet length in bytes.

RNDIS_OID_GEN_PROTOCOL_OPTIONS 

Optional protocol flags (encoded)

RNDIS_OID_GEN_MAC_OPTIONS 

Optional NIC flags (encoded)

RNDIS_OID_GEN_MEDIA_CONNECT_STATUS 

Whether the NIC is connected to the network.

RNDIS_OID_GEN_MAXIMUM_SEND_PACKETS 

The maximum number of send packets the driver can accept per call to its MiniportSendPacketsfunction.

RNDIS_OID_GEN_VENDOR_DRIVER_VERSION 

Vendor-assigned version number of the driver.

RNDIS_OID_GEN_SUPPORTED_GUIDS 

The custom GUIDs (Globally Unique Identifier) supported by the miniport driver.

RNDIS_OID_GEN_NETWORK_LAYER_ADDRESSES 

List of network-layer addresses associated with the binding between a transport and the driver.

RNDIS_OID_GEN_TRANSPORT_HEADER_OFFSET 

Size of packets' additional headers.

RNDIS_OID_GEN_PHYSICAL_MEDIUM 

Physical media supported by the miniport driver (encoded)

RNDIS_OID_802_3_PERMANENT_ADDRESS 

Permanent station address.

RNDIS_OID_802_3_CURRENT_ADDRESS 

Current station address.

RNDIS_OID_802_3_MULTICAST_LIST 

Current multicast address list.

RNDIS_OID_802_3_MAXIMUM_LIST_SIZE 

Maximum size of multicast address list.

◆ rndis_packet_filter_type_t

Enumerator
RNDIS_PACKET_TYPE_DIRECTED 

Directed packets. Directed packets contain a destination address equal to the station address of the NIC.

RNDIS_PACKET_TYPE_MULTICAST 

Multicast address packets sent to addresses in the multicast address list.

RNDIS_PACKET_TYPE_ALL_MULTICAST 

All multicast address packets, not just the ones enumerated in the multicast address list.

RNDIS_PACKET_TYPE_BROADCAST 

Broadcast packets.

RNDIS_PACKET_TYPE_SOURCE_ROUTING 

All source routing packets. If the protocol driver sets this bit, the NDIS library attempts to act as a source routing bridge.

RNDIS_PACKET_TYPE_PROMISCUOUS 

Specifies all packets regardless of whether VLAN filtering is enabled or not and whether the VLAN identifier matches or not.

RNDIS_PACKET_TYPE_SMT 

SMT packets that an FDDI NIC receives.

RNDIS_PACKET_TYPE_ALL_LOCAL 

All packets sent by installed protocols and all packets indicated by the NIC that is identified by a given NdisBindingHandle.

RNDIS_PACKET_TYPE_GROUP 

Packets sent to the current group address.

RNDIS_PACKET_TYPE_ALL_FUNCTIONAL 

All functional address packets, not just the ones in the current functional address.

RNDIS_PACKET_TYPE_FUNCTIONAL 

Functional address packets sent to addresses included in the current functional address.

RNDIS_PACKET_TYPE_MAC_FRAME 

NIC driver frames that a Token Ring NIC receives.