1*7612a43dSVitaly Kuzmichev /* 2*7612a43dSVitaly Kuzmichev * ndis.h 3*7612a43dSVitaly Kuzmichev * 4*7612a43dSVitaly Kuzmichev * ntddndis.h modified by Benedikt Spranger <b.spranger@pengutronix.de> 5*7612a43dSVitaly Kuzmichev * 6*7612a43dSVitaly Kuzmichev * Thanks to the cygwin development team, 7*7612a43dSVitaly Kuzmichev * espacially to Casper S. Hornstrup <chorns@users.sourceforge.net> 8*7612a43dSVitaly Kuzmichev * 9*7612a43dSVitaly Kuzmichev * THIS SOFTWARE IS NOT COPYRIGHTED 10*7612a43dSVitaly Kuzmichev * 11*7612a43dSVitaly Kuzmichev * This source code is offered for use in the public domain. You may 12*7612a43dSVitaly Kuzmichev * use, modify or distribute it freely. 13*7612a43dSVitaly Kuzmichev * 14*7612a43dSVitaly Kuzmichev * This code is distributed in the hope that it will be useful but 15*7612a43dSVitaly Kuzmichev * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 16*7612a43dSVitaly Kuzmichev * DISCLAIMED. This includes but is not limited to warranties of 17*7612a43dSVitaly Kuzmichev * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18*7612a43dSVitaly Kuzmichev * 19*7612a43dSVitaly Kuzmichev */ 20*7612a43dSVitaly Kuzmichev 21*7612a43dSVitaly Kuzmichev #ifndef _USBGADGET_NDIS_H 22*7612a43dSVitaly Kuzmichev #define _USBGADGET_NDIS_H 23*7612a43dSVitaly Kuzmichev 24*7612a43dSVitaly Kuzmichev 25*7612a43dSVitaly Kuzmichev #define NDIS_STATUS_MULTICAST_FULL 0xC0010009 26*7612a43dSVitaly Kuzmichev #define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A 27*7612a43dSVitaly Kuzmichev #define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B 28*7612a43dSVitaly Kuzmichev 29*7612a43dSVitaly Kuzmichev enum NDIS_DEVICE_POWER_STATE { 30*7612a43dSVitaly Kuzmichev NdisDeviceStateUnspecified = 0, 31*7612a43dSVitaly Kuzmichev NdisDeviceStateD0, 32*7612a43dSVitaly Kuzmichev NdisDeviceStateD1, 33*7612a43dSVitaly Kuzmichev NdisDeviceStateD2, 34*7612a43dSVitaly Kuzmichev NdisDeviceStateD3, 35*7612a43dSVitaly Kuzmichev NdisDeviceStateMaximum 36*7612a43dSVitaly Kuzmichev }; 37*7612a43dSVitaly Kuzmichev 38*7612a43dSVitaly Kuzmichev struct NDIS_PM_WAKE_UP_CAPABILITIES { 39*7612a43dSVitaly Kuzmichev enum NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; 40*7612a43dSVitaly Kuzmichev enum NDIS_DEVICE_POWER_STATE MinPatternWakeUp; 41*7612a43dSVitaly Kuzmichev enum NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; 42*7612a43dSVitaly Kuzmichev }; 43*7612a43dSVitaly Kuzmichev 44*7612a43dSVitaly Kuzmichev /* NDIS_PNP_CAPABILITIES.Flags constants */ 45*7612a43dSVitaly Kuzmichev #define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 46*7612a43dSVitaly Kuzmichev #define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 47*7612a43dSVitaly Kuzmichev #define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 48*7612a43dSVitaly Kuzmichev 49*7612a43dSVitaly Kuzmichev struct NDIS_PNP_CAPABILITIES { 50*7612a43dSVitaly Kuzmichev __le32 Flags; 51*7612a43dSVitaly Kuzmichev struct NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities; 52*7612a43dSVitaly Kuzmichev }; 53*7612a43dSVitaly Kuzmichev 54*7612a43dSVitaly Kuzmichev struct NDIS_PM_PACKET_PATTERN { 55*7612a43dSVitaly Kuzmichev __le32 Priority; 56*7612a43dSVitaly Kuzmichev __le32 Reserved; 57*7612a43dSVitaly Kuzmichev __le32 MaskSize; 58*7612a43dSVitaly Kuzmichev __le32 PatternOffset; 59*7612a43dSVitaly Kuzmichev __le32 PatternSize; 60*7612a43dSVitaly Kuzmichev __le32 PatternFlags; 61*7612a43dSVitaly Kuzmichev }; 62*7612a43dSVitaly Kuzmichev 63*7612a43dSVitaly Kuzmichev 64*7612a43dSVitaly Kuzmichev /* Required Object IDs (OIDs) */ 65*7612a43dSVitaly Kuzmichev #define OID_GEN_SUPPORTED_LIST 0x00010101 66*7612a43dSVitaly Kuzmichev #define OID_GEN_HARDWARE_STATUS 0x00010102 67*7612a43dSVitaly Kuzmichev #define OID_GEN_MEDIA_SUPPORTED 0x00010103 68*7612a43dSVitaly Kuzmichev #define OID_GEN_MEDIA_IN_USE 0x00010104 69*7612a43dSVitaly Kuzmichev #define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 70*7612a43dSVitaly Kuzmichev #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 71*7612a43dSVitaly Kuzmichev #define OID_GEN_LINK_SPEED 0x00010107 72*7612a43dSVitaly Kuzmichev #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 73*7612a43dSVitaly Kuzmichev #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 74*7612a43dSVitaly Kuzmichev #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A 75*7612a43dSVitaly Kuzmichev #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B 76*7612a43dSVitaly Kuzmichev #define OID_GEN_VENDOR_ID 0x0001010C 77*7612a43dSVitaly Kuzmichev #define OID_GEN_VENDOR_DESCRIPTION 0x0001010D 78*7612a43dSVitaly Kuzmichev #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E 79*7612a43dSVitaly Kuzmichev #define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F 80*7612a43dSVitaly Kuzmichev #define OID_GEN_DRIVER_VERSION 0x00010110 81*7612a43dSVitaly Kuzmichev #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 82*7612a43dSVitaly Kuzmichev #define OID_GEN_PROTOCOL_OPTIONS 0x00010112 83*7612a43dSVitaly Kuzmichev #define OID_GEN_MAC_OPTIONS 0x00010113 84*7612a43dSVitaly Kuzmichev #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 85*7612a43dSVitaly Kuzmichev #define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 86*7612a43dSVitaly Kuzmichev #define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 87*7612a43dSVitaly Kuzmichev #define OID_GEN_SUPPORTED_GUIDS 0x00010117 88*7612a43dSVitaly Kuzmichev #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 89*7612a43dSVitaly Kuzmichev #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 90*7612a43dSVitaly Kuzmichev #define OID_GEN_MACHINE_NAME 0x0001021A 91*7612a43dSVitaly Kuzmichev #define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B 92*7612a43dSVitaly Kuzmichev #define OID_GEN_VLAN_ID 0x0001021C 93*7612a43dSVitaly Kuzmichev 94*7612a43dSVitaly Kuzmichev /* Optional OIDs */ 95*7612a43dSVitaly Kuzmichev #define OID_GEN_MEDIA_CAPABILITIES 0x00010201 96*7612a43dSVitaly Kuzmichev #define OID_GEN_PHYSICAL_MEDIUM 0x00010202 97*7612a43dSVitaly Kuzmichev 98*7612a43dSVitaly Kuzmichev /* Required statistics OIDs */ 99*7612a43dSVitaly Kuzmichev #define OID_GEN_XMIT_OK 0x00020101 100*7612a43dSVitaly Kuzmichev #define OID_GEN_RCV_OK 0x00020102 101*7612a43dSVitaly Kuzmichev #define OID_GEN_XMIT_ERROR 0x00020103 102*7612a43dSVitaly Kuzmichev #define OID_GEN_RCV_ERROR 0x00020104 103*7612a43dSVitaly Kuzmichev #define OID_GEN_RCV_NO_BUFFER 0x00020105 104*7612a43dSVitaly Kuzmichev 105*7612a43dSVitaly Kuzmichev /* Optional statistics OIDs */ 106*7612a43dSVitaly Kuzmichev #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 107*7612a43dSVitaly Kuzmichev #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 108*7612a43dSVitaly Kuzmichev #define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 109*7612a43dSVitaly Kuzmichev #define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 110*7612a43dSVitaly Kuzmichev #define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 111*7612a43dSVitaly Kuzmichev #define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 112*7612a43dSVitaly Kuzmichev #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 113*7612a43dSVitaly Kuzmichev #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 114*7612a43dSVitaly Kuzmichev #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 115*7612a43dSVitaly Kuzmichev #define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A 116*7612a43dSVitaly Kuzmichev #define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B 117*7612a43dSVitaly Kuzmichev #define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C 118*7612a43dSVitaly Kuzmichev #define OID_GEN_RCV_CRC_ERROR 0x0002020D 119*7612a43dSVitaly Kuzmichev #define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E 120*7612a43dSVitaly Kuzmichev #define OID_GEN_GET_TIME_CAPS 0x0002020F 121*7612a43dSVitaly Kuzmichev #define OID_GEN_GET_NETCARD_TIME 0x00020210 122*7612a43dSVitaly Kuzmichev #define OID_GEN_NETCARD_LOAD 0x00020211 123*7612a43dSVitaly Kuzmichev #define OID_GEN_DEVICE_PROFILE 0x00020212 124*7612a43dSVitaly Kuzmichev #define OID_GEN_INIT_TIME_MS 0x00020213 125*7612a43dSVitaly Kuzmichev #define OID_GEN_RESET_COUNTS 0x00020214 126*7612a43dSVitaly Kuzmichev #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215 127*7612a43dSVitaly Kuzmichev #define OID_GEN_FRIENDLY_NAME 0x00020216 128*7612a43dSVitaly Kuzmichev #define OID_GEN_MINIPORT_INFO 0x00020217 129*7612a43dSVitaly Kuzmichev #define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218 130*7612a43dSVitaly Kuzmichev 131*7612a43dSVitaly Kuzmichev /* IEEE 802.3 (Ethernet) OIDs */ 132*7612a43dSVitaly Kuzmichev #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 133*7612a43dSVitaly Kuzmichev 134*7612a43dSVitaly Kuzmichev #define OID_802_3_PERMANENT_ADDRESS 0x01010101 135*7612a43dSVitaly Kuzmichev #define OID_802_3_CURRENT_ADDRESS 0x01010102 136*7612a43dSVitaly Kuzmichev #define OID_802_3_MULTICAST_LIST 0x01010103 137*7612a43dSVitaly Kuzmichev #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 138*7612a43dSVitaly Kuzmichev #define OID_802_3_MAC_OPTIONS 0x01010105 139*7612a43dSVitaly Kuzmichev #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 140*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_ONE_COLLISION 0x01020102 141*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 142*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_DEFERRED 0x01020201 143*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 144*7612a43dSVitaly Kuzmichev #define OID_802_3_RCV_OVERRUN 0x01020203 145*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_UNDERRUN 0x01020204 146*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 147*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 148*7612a43dSVitaly Kuzmichev #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 149*7612a43dSVitaly Kuzmichev 150*7612a43dSVitaly Kuzmichev /* OID_GEN_MINIPORT_INFO constants */ 151*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_BUS_MASTER 0x00000001 152*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_WDM_DRIVER 0x00000002 153*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SG_LIST 0x00000004 154*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008 155*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010 156*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020 157*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040 158*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080 159*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100 160*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_IS_NDIS_5 0x00000200 161*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_IS_CO 0x00000400 162*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_DESERIALIZE 0x00000800 163*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000 164*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000 165*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_NETBOOT_CARD 0x00004000 166*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_PM_SUPPORTED 0x00008000 167*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000 168*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000 169*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_HIDDEN 0x00040000 170*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SWENUM 0x00080000 171*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000 172*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000 173*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000 174*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000 175*7612a43dSVitaly Kuzmichev #define NDIS_MINIPORT_64BITS_DMA 0x01000000 176*7612a43dSVitaly Kuzmichev 177*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_802_3 0x00000000 178*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_802_5 0x00000001 179*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_FDDI 0x00000002 180*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_WAN 0x00000003 181*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_LOCAL_TALK 0x00000004 182*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_DIX 0x00000005 183*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_ARCENT_RAW 0x00000006 184*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_ARCENT_878_2 0x00000007 185*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_ATM 0x00000008 186*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_WIRELESS_LAN 0x00000009 187*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_IRDA 0x0000000A 188*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_BPC 0x0000000B 189*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_CO_WAN 0x0000000C 190*7612a43dSVitaly Kuzmichev #define NDIS_MEDIUM_1394 0x0000000D 191*7612a43dSVitaly Kuzmichev 192*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_DIRECTED 0x00000001 193*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_MULTICAST 0x00000002 194*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004 195*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_BROADCAST 0x00000008 196*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010 197*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020 198*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_SMT 0x00000040 199*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080 200*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_GROUP 0x00000100 201*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00000200 202*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_FUNCTIONAL 0x00000400 203*7612a43dSVitaly Kuzmichev #define NDIS_PACKET_TYPE_MAC_FRAME 0x00000800 204*7612a43dSVitaly Kuzmichev 205*7612a43dSVitaly Kuzmichev #define NDIS_MEDIA_STATE_CONNECTED 0x00000000 206*7612a43dSVitaly Kuzmichev #define NDIS_MEDIA_STATE_DISCONNECTED 0x00000001 207*7612a43dSVitaly Kuzmichev 208*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001 209*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 210*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 211*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008 212*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 213*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 214*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 215*7612a43dSVitaly Kuzmichev #define NDIS_MAC_OPTION_RESERVED 0x80000000 216*7612a43dSVitaly Kuzmichev 217*7612a43dSVitaly Kuzmichev #endif /* _USBGADGET_NDIS_H */ 218