33#ifndef _TUSB_CDC_RNDIS_H_
34#define _TUSB_CDC_RNDIS_H_
43#pragma diag_suppress 66
49 RNDIS_MSG_PACKET = 0x00000001UL,
51 RNDIS_MSG_INITIALIZE = 0x00000002UL,
52 RNDIS_MSG_INITIALIZE_CMPLT = 0x80000002UL,
54 RNDIS_MSG_HALT = 0x00000003UL,
56 RNDIS_MSG_QUERY = 0x00000004UL,
57 RNDIS_MSG_QUERY_CMPLT = 0x80000004UL,
59 RNDIS_MSG_SET = 0x00000005UL,
60 RNDIS_MSG_SET_CMPLT = 0x80000005UL,
62 RNDIS_MSG_RESET = 0x00000006UL,
63 RNDIS_MSG_RESET_CMPLT = 0x80000006UL,
65 RNDIS_MSG_INDICATE_STATUS = 0x00000007UL,
67 RNDIS_MSG_KEEP_ALIVE = 0x00000008UL,
68 RNDIS_MSG_KEEP_ALIVE_CMPLT = 0x80000008UL
83#pragma diag_default 66
116 uint32_t reserved[2] ;
130 uint8_t oid_buffer[] ;
144 uint8_t oid_buffer[] ;
207 uint32_t reserved[2] ;
208 uint32_t payload[0] ;
struct rndis_msg_out_of_band_data_t rndis_msg_per_packet_info_t
struct rndis_msg_query_t rndis_msg_set_t
rndis_oid_type_t
NDIS Object ID.
TU_VERIFY_STATIC(sizeof(rndis_msg_query_t)==28, "Make sure flexible array member does not affect layout")
rndis_packet_filter_type_t
RNDIS Packet Filter Bits RNDIS_OID_GEN_CURRENT_PACKET_FILTER.
struct rndis_msg_set_cmplt_t rndis_msg_keep_alive_cmplt_t
rndis_msg_status_t
RNDIS Message Status Values.
struct rndis_msg_keep_alive_t rndis_msg_halt_t
@ RNDIS_OID_GEN_TRANSMIT_BUFFER_SPACE
Transmit buffer space.
@ RNDIS_OID_GEN_CURRENT_PACKET_FILTER
Current packet filter (encoded)
@ RNDIS_OID_GEN_TRANSPORT_HEADER_OFFSET
Size of packets' additional headers.
@ RNDIS_OID_GEN_MAXIMUM_TOTAL_SIZE
Maximum total packet length in bytes.
@ RNDIS_OID_GEN_LINK_SPEED
Link speed in units of 100 bps.
@ RNDIS_OID_GEN_MAXIMUM_LOOKAHEAD
@ RNDIS_OID_GEN_VENDOR_ID
Vendor NIC code.
@ RNDIS_OID_GEN_MEDIA_SUPPORTED
Media types supported (encoded)
@ RNDIS_OID_GEN_CURRENT_LOOKAHEAD
Current lookahead size in bytes.
@ RNDIS_OID_GEN_PHYSICAL_MEDIUM
Physical media supported by the miniport driver (encoded)
@ 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_DRIVER_VERSION
Vendor-assigned version number of the driver.
@ RNDIS_OID_GEN_MAXIMUM_SEND_PACKETS
The maximum number of send packets the driver can accept per call to its MiniportSendPacketsfunction.
@ RNDIS_OID_802_3_MAXIMUM_LIST_SIZE
Maximum size of multicast address list.
@ RNDIS_OID_GEN_PROTOCOL_OPTIONS
Optional protocol flags (encoded)
@ RNDIS_OID_GEN_DRIVER_VERSION
NDIS version number used by the driver.
@ RNDIS_OID_GEN_MEDIA_CAPABILITIES
@ RNDIS_OID_GEN_MEDIA_CONNECT_STATUS
Whether the NIC is connected to the network.
@ RNDIS_OID_GEN_TRANSMIT_BLOCK_SIZE
Minimum amount of storage, in bytes, that a single packet occupies in the transmit buffer space of th...
@ RNDIS_OID_GEN_MEDIA_IN_USE
Media types in use (encoded)
@ RNDIS_OID_802_3_MULTICAST_LIST
Current multicast address list.
@ RNDIS_OID_GEN_MAXIMUM_FRAME_SIZE
Maximum frame size in bytes.
@ RNDIS_OID_GEN_SUPPORTED_LIST
List of supported OIDs.
@ RNDIS_OID_GEN_MAC_OPTIONS
Optional NIC flags (encoded)
@ RNDIS_OID_GEN_SUPPORTED_GUIDS
The custom GUIDs (Globally Unique Identifier) supported by the miniport driver.
@ RNDIS_OID_802_3_PERMANENT_ADDRESS
Permanent station address.
@ RNDIS_OID_GEN_RECEIVE_BUFFER_SPACE
Receive buffer space.
@ RNDIS_OID_GEN_HARDWARE_STATUS
Hardware status.
@ RNDIS_OID_GEN_VENDOR_DESCRIPTION
Vendor network card description.
@ RNDIS_OID_802_3_CURRENT_ADDRESS
Current station address.
@ RNDIS_OID_GEN_NETWORK_LAYER_ADDRESSES
List of network-layer addresses associated with the binding between a transport and the driver.
@ RNDIS_PACKET_TYPE_DIRECTED
Directed packets. Directed packets contain a destination address equal to the station address of the ...
@ RNDIS_PACKET_TYPE_MAC_FRAME
NIC driver frames that a Token Ring 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 ...
@ RNDIS_PACKET_TYPE_GROUP
Packets sent to the current group address.
@ RNDIS_PACKET_TYPE_SOURCE_ROUTING
All source routing packets. If the protocol driver sets this bit, the NDIS library attempts to act as...
@ RNDIS_PACKET_TYPE_ALL_FUNCTIONAL
All functional address packets, not just the ones in the current functional address.
@ RNDIS_PACKET_TYPE_BROADCAST
Broadcast packets.
@ RNDIS_PACKET_TYPE_MULTICAST
Multicast address packets sent to addresses in the multicast address list.
@ RNDIS_PACKET_TYPE_PROMISCUOUS
Specifies all packets regardless of whether VLAN filtering is enabled or not and whether the VLAN ide...
@ RNDIS_PACKET_TYPE_FUNCTIONAL
Functional address packets sent to addresses included in the current functional address.
@ RNDIS_PACKET_TYPE_ALL_MULTICAST
All multicast address packets, not just the ones enumerated in the multicast address list.
@ RNDIS_PACKET_TYPE_NO_LOCAL
@ RNDIS_PACKET_TYPE_SMT
SMT packets that an FDDI NIC receives.
@ RNDIS_STATUS_FAILURE
Unspecified error.
@ RNDIS_STATUS_NOT_SUPPORTED
Unsupported request error.
@ RNDIS_STATUS_SUCCESS
Success.
@ RNDIS_STATUS_MEDIA_DISCONNECT
Device is disconnected from the medium.
@ RNDIS_STATUS_MEDIA_CONNECT
Device is connected to a network medium.
@ RNDIS_STATUS_INVALID_DATA
Invalid data error.
Initialize Complete Message.
uint32_t type
Message Type, must be RNDIS_MSG_INITIALIZE_CMPLT.
uint32_t major_version
the highest-numbered RNDIS Protocol version supported by the device.
uint32_t status
The initialization status of the device, has value from rndis_msg_status_t.
uint32_t max_xfer_size
The maximum size, in bytes, of any single bus data transfer that the device expects to receive from t...
uint32_t minor_version
the highest-numbered RNDIS Protocol version supported by the device.
uint32_t request_id
A 32-bit integer value from request_id field of the rndis_msg_initialize_t to which this message is a...
uint32_t max_packet_per_xfer
The maximum number of concatenated RNDIS_MSG_PACKET messages that the device can handle in a single b...
uint32_t packet_alignment_factor
The byte alignment the device expects for each RNDIS message that is part of a multimessage transfer ...
uint32_t length
Message length in bytes, must be 0x30.
uint32_t device_flags
MUST be set to 0x000000010. Other values are reserved for future use.
uint32_t medium
is 0x00 for RNDIS_MEDIUM_802_3
uint32_t max_xfer_size
The maximum size, in bytes, of any single bus data transfer that the host expects to receive from the...
uint32_t request_id
A 32-bit integer value, generated by the host, used to match the host's sent request to the response ...
uint32_t length
Message length in bytes, must be 0x18.
uint32_t type
Message type, must be RNDIS_MSG_INITIALIZE.
uint32_t minor_version
The minor version of the RNDIS Protocol implemented by the host.
uint32_t major_version
The major version of the RNDIS Protocol implemented by the host.
uint32_t length
Message length in bytes, MUST be 0x10.
uint32_t type
Message Type.
uint32_t size
Length, in bytes, of this header and appended data and padding. This value MUST be an integer multipl...
uint32_t offset
The byte offset from the beginning of this record to the beginning of data.
uint32_t type
MUST be as per host operating system specification.
uint32_t per_packet_info_length
Specifies, in bytes, the total length of per-packetinformation contained in this message.
uint32_t type
Message Type, must be RNDIS_MSG_PACKET.
uint32_t out_of_band_data_length
Specifies, in bytes, the total length of the out-of-band data.
uint32_t per_packet_info_offset
Specifies the offset, in bytes, of the start of per-packet-info data record from the start of the dat...
uint32_t num_out_of_band_data_elements
Specifies the number of out-of-band records in this message.
uint32_t data_length
Specifies the number of bytes in the payload of this message.
uint32_t data_offset
Specifies the offset, in bytes, from the start of this data_offset field of this message to the start...
uint32_t length
Message length in bytes, The total length of this RNDIS message including the header,...
uint32_t out_of_band_data_offet
Specifies the offset, in bytes, of the first out-of-band data record from the start of the DataOffset...
uint32_t buffer_offset
The offset, in bytes, from the beginning of request_id field where the response data for the query is...
uint32_t status
The status of processing for the query request, has value from rndis_msg_status_t.
uint32_t type
Message Type, must be RNDIS_MSG_QUERY_CMPLT.
uint32_t buffer_length
The length, in bytes, of the data in the response to the query. This MUST be set to 0 when there is n...
uint32_t request_id
A 32-bit integer value from request_id field of the rndis_msg_query_t to which this message is a resp...
uint32_t length
Message length in bytes, including the header and the oid_buffer.
uint32_t request_id
A 32-bit integer value, generated by the host, used to match the host's sent request to the response ...
uint32_t type
Message Type, must be RNDIS_MSG_QUERY.
uint32_t oid
The integer value of the host operating system-defined identifier, for the parameter of the device be...
uint32_t buffer_offset
The offset, in bytes, from the beginning of request_id field where the input data for the query is lo...
uint32_t buffer_length
The length, in bytes, of the input data required for the OID query. This MUST be set to 0 when there ...
uint32_t length
Message length in bytes, including the header and the oid_buffer.
uint32_t type
Message Type, must be RNDIS_MSG_RESET_CMPLT.
uint32_t length
Message length in bytes, MUST be 0x10.
uint32_t status
The status of processing for the rndis_msg_reset_t, has value from rndis_msg_status_t.
uint32_t addressing_reset
This field indicates whether the addressing information, which is the multicast address list or packe...
uint32_t type
Message Type, must be RNDIS_MSG_RESET.
uint32_t length
Message length in bytes, MUST be 0x06.
uint32_t status
The status of processing for the request message request by the device to which this message is the r...
uint32_t length
Message length in bytes, MUST be 0x10.
uint32_t request_id
must be the same as requesting message
uint32_t type
Message Type.