880
954
NDIS_STATUS status);
881
955
STDCALL void NdisMResetComplete(struct ndis_handle *handle, NDIS_STATUS status,
882
956
BOOLEAN address_reset);
883
STDCALL ULONG NDIS_BUFFER_TO_SPAN_PAGES(struct ndis_buffer *buffer);
957
STDCALL ULONG NDIS_BUFFER_TO_SPAN_PAGES(ndis_buffer *buffer);
884
958
STDCALL BOOLEAN NdisWaitEvent(struct ndis_event *event, UINT timeout);
885
959
STDCALL void NdisSetEvent(struct ndis_event *event);
886
960
STDCALL void NdisMDeregisterInterrupt(struct ndis_irq *ndis_irq);
887
961
STDCALL void EthRxIndicateHandler(void *adapter_ctx, void *rx_ctx,
889
char *header, UINT header_size,
962
char *header1, char *header,
963
UINT header_size, void *look_ahead,
891
964
UINT look_ahead_size, UINT packet_size);
892
965
STDCALL void EthRxComplete(struct ndis_handle *handle);
893
966
STDCALL void NdisMTransferDataComplete(struct ndis_handle *handle,
894
967
struct ndis_packet *packet,
968
NDIS_STATUS status, UINT bytes_txed);
897
969
STDCALL void NdisWriteConfiguration(NDIS_STATUS *status,
898
970
struct ndis_handle *handle,
971
struct unicode_string *key,
900
972
struct ndis_config_param *val);
902
STDCALL NT_STATUS RtlUnicodeStringToAnsiString(struct ustring *dst,
905
STDCALL NT_STATUS RtlAnsiStringToUnicodeString(struct ustring *dst,
908
STDCALL void RtlInitAnsiString(struct ustring *dst, CHAR *src);
909
STDCALL void RtlFreeUnicodeString(struct ustring *string);
910
STDCALL void RtlFreeAnsiString(struct ustring *string);
912
974
void *get_sp(void);
913
975
int ndis_init(void);
914
976
void ndis_exit_handle(struct ndis_handle *handle);
915
977
void ndis_exit(void);
981
void usb_cleanup(void);
983
int load_pe_images(struct pe_image[], int n);
919
985
int ndiswrapper_procfs_init(void);
920
986
int ndiswrapper_procfs_add_iface(struct ndis_handle *handle);
921
987
void ndiswrapper_procfs_remove_iface(struct ndis_handle *handle);
922
988
void ndiswrapper_procfs_remove(void);
990
int misc_funcs_init(void);
991
void misc_funcs_exit_handle(struct ndis_handle *handle);
992
void misc_funcs_exit(void);
993
void *wrap_kmalloc(size_t size, int flags);
994
void wrap_kfree(void *ptr);
995
void wrapper_init_timer(struct ktimer *ktimer, void *handle);
996
int wrapper_set_timer(struct wrapper_timer *wrapper_timer,
997
unsigned long expires, unsigned long repeat,
999
void wrapper_cancel_timer(struct wrapper_timer *wrapper_timer, char *canceled);
924
1001
void packet_recycler(void *param);
925
1002
int stricmp(const char *s1, const char *s2);
926
int string_to_mac(unsigned char *mac, unsigned char *string, int string_len);
1003
void dump_bytes(const char *where, const u8 *ip);
1006
#define OID_GEN_SUPPORTED_LIST 0x00010101
1007
#define OID_GEN_HARDWARE_STATUS 0x00010102
1008
#define OID_GEN_MEDIA_SUPPORTED 0x00010103
1009
#define OID_GEN_MEDIA_IN_USE 0x00010104
1010
#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
1011
#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
1012
#define OID_GEN_LINK_SPEED 0x00010107
1013
#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
1014
#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
1015
#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
1016
#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
1017
#define OID_GEN_VENDOR_ID 0x0001010C
1018
#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
1019
#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
1020
#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
1021
#define OID_GEN_DRIVER_VERSION 0x00010110
1022
#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
1023
#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
1024
#define OID_GEN_MAC_OPTIONS 0x00010113
1025
#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
1026
#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
1027
#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
1028
#define OID_GEN_SUPPORTED_GUIDS 0x00010117
1029
#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */
1030
#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */
1031
#define OID_GEN_MACHINE_NAME 0x0001021A
1032
#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */
1033
#define OID_GEN_VLAN_ID 0x0001021C
1035
/* Optional OIDs. */
1036
#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
1037
#define OID_GEN_PHYSICAL_MEDIUM 0x00010202
1039
/* Required statistics OIDs. */
1040
#define OID_GEN_XMIT_OK 0x00020101
1041
#define OID_GEN_RCV_OK 0x00020102
1042
#define OID_GEN_XMIT_ERROR 0x00020103
1043
#define OID_GEN_RCV_ERROR 0x00020104
1044
#define OID_GEN_RCV_NO_BUFFER 0x00020105
1046
/* Optional OID statistics */
1047
#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
1048
#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
1049
#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
1050
#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
1051
#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
1052
#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
1053
#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
1054
#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
1055
#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
1056
#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
1057
#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
1058
#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
1059
#define OID_GEN_RCV_CRC_ERROR 0x0002020D
1060
#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E
1061
#define OID_GEN_GET_TIME_CAPS 0x0002020F
1062
#define OID_GEN_GET_NETCARD_TIME 0x00020210
1063
#define OID_GEN_NETCARD_LOAD 0x00020211
1064
#define OID_GEN_DEVICE_PROFILE 0x00020212
1066
/* 802.3 (ethernet) OIDs */
1067
#define OID_802_3_PERMANENT_ADDRESS 0x01010101
1068
#define OID_802_3_CURRENT_ADDRESS 0x01010102
1069
#define OID_802_3_MULTICAST_LIST 0x01010103
1070
#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
1071
#define OID_802_3_MAC_OPTIONS 0x01010105
1072
#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
1073
#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
1074
#define OID_802_3_XMIT_ONE_COLLISION 0x01020102
1075
#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
1076
#define OID_802_3_XMIT_DEFERRED 0x01020201
1077
#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
1078
#define OID_802_3_RCV_OVERRUN 0x01020203
1079
#define OID_802_3_XMIT_UNDERRUN 0x01020204
1080
#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
1081
#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
1082
#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
1084
/* PnP and power management OIDs */
1085
#define OID_PNP_CAPABILITIES 0xFD010100
1086
#define OID_PNP_SET_POWER 0xFD010101
1087
#define OID_PNP_QUERY_POWER 0xFD010102
1088
#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103
1089
#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104
1090
#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105
1091
#define OID_PNP_ENABLE_WAKE_UP 0xFD010106
1093
/* PnP/PM Statistics (Optional). */
1094
#define OID_PNP_WAKE_UP_OK 0xFD020200
1095
#define OID_PNP_WAKE_UP_ERROR 0xFD020201
1097
/* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */
1098
#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
1099
#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
1100
#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004
1103
#define OID_802_11_BSSID 0x0D010101
1104
#define OID_802_11_SSID 0x0D010102
1105
#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203
1106
#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204
1107
#define OID_802_11_TX_POWER_LEVEL 0x0D010205
1108
#define OID_802_11_RSSI 0x0D010206
1109
#define OID_802_11_RSSI_TRIGGER 0x0D010207
1110
#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108
1111
#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209
1112
#define OID_802_11_RTS_THRESHOLD 0x0D01020A
1113
#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B
1114
#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C
1115
#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D
1116
#define OID_802_11_SUPPORTED_RATES 0x0D01020E
1117
#define OID_802_11_DESIRED_RATES 0x0D010210
1118
#define OID_802_11_CONFIGURATION 0x0D010211
1119
#define OID_802_11_STATISTICS 0x0D020212
1120
#define OID_802_11_ADD_WEP 0x0D010113
1121
#define OID_802_11_REMOVE_WEP 0x0D010114
1122
#define OID_802_11_DISASSOCIATE 0x0D010115
1123
#define OID_802_11_POWER_MODE 0x0D010216
1124
#define OID_802_11_BSSID_LIST 0x0D010217
1125
#define OID_802_11_AUTHENTICATION_MODE 0x0D010118
1126
#define OID_802_11_PRIVACY_FILTER 0x0D010119
1127
#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A
1128
#define OID_802_11_WEP_STATUS 0x0D01011B
1129
#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
1130
#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C
1131
#define OID_802_11_ADD_KEY 0x0D01011D
1132
#define OID_802_11_REMOVE_KEY 0x0D01011E
1133
#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F
1134
#define OID_802_11_TEST 0x0D010120
1135
#define OID_802_11_CAPABILITY 0x0D010122
1136
#define OID_802_11_PMKID 0x0D010123
1138
#define NDIS_STATUS_SUCCESS 0
1139
#define NDIS_STATUS_PENDING 0x00000103
1140
#define NDIS_STATUS_NOT_RECOGNIZED 0x00010001
1141
#define NDIS_STATUS_NOT_COPIED 0x00010002
1142
#define NDIS_STATUS_NOT_ACCEPTED 0x00010003
1143
#define NDIS_STATUS_CALL_ACTIVE 0x00010007
1144
#define NDIS_STATUS_ONLINE 0x40010003
1145
#define NDIS_STATUS_RESET_START 0x40010004
1146
#define NDIS_STATUS_RESET_END 0x40010005
1147
#define NDIS_STATUS_RING_STATUS 0x40010006
1148
#define NDIS_STATUS_CLOSED 0x40010007
1149
#define NDIS_STATUS_WAN_LINE_UP 0x40010008
1150
#define NDIS_STATUS_WAN_LINE_DOWN 0x40010009
1151
#define NDIS_STATUS_WAN_FRAGMENT 0x4001000A
1152
#define NDIS_STATUS_MEDIA_CONNECT 0x4001000B
1153
#define NDIS_STATUS_MEDIA_DISCONNECT 0x4001000C
1154
#define NDIS_STATUS_HARDWARE_LINE_UP 0x4001000D
1155
#define NDIS_STATUS_HARDWARE_LINE_DOWN 0x4001000E
1156
#define NDIS_STATUS_INTERFACE_UP 0x4001000F
1157
#define NDIS_STATUS_INTERFACE_DOWN 0x40010010
1158
#define NDIS_STATUS_MEDIA_BUSY 0x40010011
1159
#define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION 0x40010012
1160
#define NDIS_STATUS_WW_INDICATION NDIS_STATUS_MEDIA_SPECIFIC_INDICATION
1161
#define NDIS_STATUS_LINK_SPEED_CHANGE 0x40010013
1162
#define NDIS_STATUS_WAN_GET_STATS 0x40010014
1163
#define NDIS_STATUS_WAN_CO_FRAGMENT 0x40010015
1164
#define NDIS_STATUS_WAN_CO_LINKPARAMS 0x40010016
1165
#define NDIS_STATUS_NOT_RESETTABLE 0x80010001
1166
#define NDIS_STATUS_SOFT_ERRORS 0x80010003
1167
#define NDIS_STATUS_HARD_ERRORS 0x80010004
1168
#define NDIS_STATUS_BUFFER_OVERFLOW 0x80000005
1169
#define NDIS_STATUS_FAILURE 0xC0000001
1170
#define NDIS_STATUS_INVALID_PARAMETER 0xC000000D
1171
#define NDIS_STATUS_RESOURCES 0xC000009A
1172
#define NDIS_STATUS_CLOSING 0xC0010002
1173
#define NDIS_STATUS_BAD_VERSION 0xC0010004
1174
#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005
1175
#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006
1176
#define NDIS_STATUS_OPEN_FAILED 0xC0010007
1177
#define NDIS_STATUS_DEVICE_FAILED 0xC0010008
1178
#define NDIS_STATUS_MULTICAST_FULL 0xC0010009
1179
#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A
1180
#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B
1181
#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C
1182
#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D
1183
#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E
1184
#define NDIS_STATUS_BAD_VERSION 0xC0010004
1185
#define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB
1186
#define NDIS_STATUS_INVALID_PACKET 0xC001000F
1187
#define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010
1188
#define NDIS_STATUS_ADAPTER_NOT_READY 0xC0010011
1189
#define NDIS_STATUS_ADAPTER_NOT_OPEN 0xC0010012
1190
#define NDIS_STATUS_NOT_INDICATING 0xC0010013
1191
#define NDIS_STATUS_INVALID_LENGTH 0xC0010014
1192
#define NDIS_STATUS_INVALID_DATA 0xC0010015
1193
#define NDIS_STATUS_BUFFER_TOO_SHORT 0xC0010016
1194
#define NDIS_STATUS_INVALID_OID 0xC0010017
1195
#define NDIS_STATUS_ADAPTER_REMOVED 0xC0010018
1196
#define NDIS_STATUS_UNSUPPORTED_MEDIA 0xC0010019
1197
#define NDIS_STATUS_GROUP_ADDRESS_IN_USE 0xC001001A
1198
#define NDIS_STATUS_FILE_NOT_FOUND 0xC001001B
1199
#define NDIS_STATUS_ERROR_READING_FILE 0xC001001C
1200
#define NDIS_STATUS_ALREADY_MAPPED 0xC001001D
1201
#define NDIS_STATUS_RESOURCE_CONFLICT 0xC001001E
1202
#define NDIS_STATUS_NO_CABLE 0xC001001F
1203
#define NDIS_STATUS_INVALID_SAP 0xC0010020
1204
#define NDIS_STATUS_SAP_IN_USE 0xC0010021
1205
#define NDIS_STATUS_INVALID_ADDRESS 0xC0010022
1206
#define NDIS_STATUS_VC_NOT_ACTIVATED 0xC0010023
1207
#define NDIS_STATUS_DEST_OUT_OF_ORDER 0xC0010024
1208
#define NDIS_STATUS_VC_NOT_AVAILABLE 0xC0010025
1209
#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE 0xC0010026
1210
#define NDIS_STATUS_INCOMPATABLE_QOS 0xC0010027
1211
#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED 0xC0010028
1212
#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION 0xC0010029
1213
#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR 0xC0011000
1214
#define NDIS_STATUS_INVALID_DEVICE_REQUEST 0xC0000010
1215
#define NDIS_STATUS_NETWORK_UNREACHABLE 0xC000023C
1219
#define EVENT_NDIS_RESOURCE_CONFLICT 0xC0001388
1220
#define EVENT_NDIS_OUT_OF_RESOURCE 0xC0001389
1221
#define EVENT_NDIS_HARDWARE_FAILURE 0xC000138A
1222
#define EVENT_NDIS_ADAPTER_NOT_FOUND 0xC000138B
1223
#define EVENT_NDIS_INTERRUPT_CONNECT 0xC000138C
1224
#define EVENT_NDIS_DRIVER_FAILURE 0xC000138D
1225
#define EVENT_NDIS_BAD_VERSION 0xC000138E
1226
#define EVENT_NDIS_TIMEOUT 0x8000138F
1227
#define EVENT_NDIS_NETWORK_ADDRESS 0xC0001390
1228
#define EVENT_NDIS_UNSUPPORTED_CONFIGURATION 0xC0001391
1229
#define EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER 0xC0001392
1230
#define EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER 0xC0001393
1231
#define EVENT_NDIS_BAD_IO_BASE_ADDRESS 0xC0001394
1232
#define EVENT_NDIS_RECEIVE_SPACE_SMALL 0x40001395
1233
#define EVENT_NDIS_ADAPTER_DISABLED 0x80001396
1234
#define EVENT_NDIS_IO_PORT_CONFLICT 0x80001397
1235
#define EVENT_NDIS_PORT_OR_DMA_CONFLICT 0x80001398
1236
#define EVENT_NDIS_MEMORY_CONFLICT 0x80001399
1237
#define EVENT_NDIS_INTERRUPT_CONFLICT 0x8000139A
1238
#define EVENT_NDIS_DMA_CONFLICT 0x8000139B
1239
#define EVENT_NDIS_INVALID_DOWNLOAD_FILE_ERROR 0xC000139C
1240
#define EVENT_NDIS_MAXRECEIVES_ERROR 0x8000139D
1241
#define EVENT_NDIS_MAXTRANSMITS_ERROR 0x8000139E
1242
#define EVENT_NDIS_MAXFRAMESIZE_ERROR 0x8000139F
1243
#define EVENT_NDIS_MAXINTERNALBUFS_ERROR 0x800013A0
1244
#define EVENT_NDIS_MAXMULTICAST_ERROR 0x800013A1
1245
#define EVENT_NDIS_PRODUCTID_ERROR 0x800013A2
1246
#define EVENT_NDIS_LOBE_FAILUE_ERROR 0x800013A3
1247
#define EVENT_NDIS_SIGNAL_LOSS_ERROR 0x800013A4
1248
#define EVENT_NDIS_REMOVE_RECEIVED_ERROR 0x800013A5
1249
#define EVENT_NDIS_TOKEN_RING_CORRECTION 0x400013A6
1250
#define EVENT_NDIS_ADAPTER_CHECK_ERROR 0xC00013A7
1251
#define EVENT_NDIS_RESET_FAILURE_ERROR 0x800013A8
1252
#define EVENT_NDIS_CABLE_DISCONNECTED_ERROR 0x800013A9
1253
#define EVENT_NDIS_RESET_FAILURE_CORRECTION 0x800013AA
1255
/* packet filter bits used by NDIS_OID_PACKET_FILTER */
1256
#define NDIS_PACKET_TYPE_DIRECTED 0x00000001
1257
#define NDIS_PACKET_TYPE_MULTICAST 0x00000002
1258
#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
1259
#define NDIS_PACKET_TYPE_BROADCAST 0x00000008
1260
#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
1261
#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
1262
#define NDIS_PACKET_TYPE_SMT 0x00000040
1263
#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
1264
#define NDIS_PACKET_TYPE_GROUP 0x00001000
1265
#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000
1266
#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000
1267
#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000
1269
/* memory allocation flags */
1270
#define NDIS_MEMORY_CONTIGUOUS 0x00000001
1271
#define NDIS_MEMORY_NONCACHED 0x00000002
1273
/* Atrribute flags to NdisMSetAtrributesEx */
1274
#define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001
1275
#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002
1276
#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004
1277
#define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008
1278
#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010
1279
#define NDIS_ATTRIBUTE_DESERIALIZE 0x00000020
1280
#define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 0x00000040
1281
#define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK 0x00000080
1282
#define NDIS_ATTRIBUTE_NOT_CO_NDIS 0x00000100
1283
#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS 0x00000200
928
1285
#endif /* NDIS_H */