Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntddndis.h
Go to the documentation of this file.
00001 /* 00002 * ntddndis.h 00003 * 00004 * NDIS device driver interface 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef _NTDDNDIS_ 00024 #define _NTDDNDIS_ 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif 00029 00030 typedef enum _NDIS_WAN_QUALITY { 00031 NdisWanRaw, 00032 NdisWanErrorControl, 00033 NdisWanReliable 00034 } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY; 00035 00036 typedef enum _NDIS_DEVICE_POWER_STATE { 00037 NdisDeviceStateUnspecified = 0, 00038 NdisDeviceStateD0, 00039 NdisDeviceStateD1, 00040 NdisDeviceStateD2, 00041 NdisDeviceStateD3, 00042 NdisDeviceStateMaximum 00043 } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE; 00044 00045 typedef enum _NDIS_802_11_WEP_STATUS 00046 { 00047 Ndis802_11WEPEnabled, 00048 Ndis802_11WEPDisabled, 00049 Ndis802_11WEPKeyAbsent, 00050 Ndis802_11WEPNotSupported 00051 } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS; 00052 00053 typedef enum _NDIS_802_11_AUTHENTICATION_MODE 00054 { 00055 Ndis802_11AuthModeOpen, 00056 Ndis802_11AuthModeShared, 00057 Ndis802_11AuthModeAutoSwitch, 00058 Ndis802_11AuthModeMax 00059 } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE; 00060 00061 typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE 00062 { 00063 Ndis802_11IBSS, 00064 Ndis802_11Infrastructure, 00065 Ndis802_11AutoUnknown, 00066 Ndis802_11InfrastructureMax 00067 } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE; 00068 00069 typedef enum _NDIS_802_11_NETWORK_TYPE 00070 { 00071 Ndis802_11FH, 00072 Ndis802_11DS, 00073 Ndis802_11OFDM5, 00074 Ndis802_11OFDM24, 00075 Ndis802_11Automode, 00076 Ndis802_11NetworkTypeMax 00077 } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE; 00078 00079 typedef struct _NDIS_OBJECT_HEADER 00080 { 00081 UCHAR Type; 00082 UCHAR Revision; 00083 USHORT Size; 00084 } NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER; 00085 00086 #define NDIS_802_11_LENGTH_SSID 32 00087 #define NDIS_802_11_LENGTH_RATES 8 00088 00089 typedef UCHAR NDIS_802_11_MAC_ADDRESS[6]; 00090 typedef LONG NDIS_802_11_RSSI; 00091 typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; 00092 00093 typedef struct _NDIS_802_11_SSID 00094 { 00095 ULONG SsidLength; 00096 UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; 00097 } NDIS_802_11_SSID, *PNDIS_802_11_SSID; 00098 00099 typedef struct _NDIS_802_11_CONFIGURATION_FH 00100 { 00101 ULONG Length; 00102 ULONG HopPattern; 00103 ULONG HopSet; 00104 ULONG DwellTime; 00105 } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH; 00106 00107 typedef struct _NDIS_802_11_CONFIGURATION 00108 { 00109 ULONG Length; 00110 ULONG BeaconPeriod; 00111 ULONG ATIMWindow; 00112 ULONG DSConfig; 00113 NDIS_802_11_CONFIGURATION_FH FHConfig; 00114 } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION; 00115 00116 typedef struct _NDIS_WLAN_BSSID 00117 { 00118 ULONG Length; 00119 NDIS_802_11_MAC_ADDRESS MacAddress; 00120 UCHAR Reserved[2]; 00121 NDIS_802_11_SSID Ssid; 00122 ULONG Privacy; 00123 NDIS_802_11_RSSI Rssi; 00124 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; 00125 NDIS_802_11_CONFIGURATION Configuration; 00126 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; 00127 NDIS_802_11_RATES SupportedRates; 00128 } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID; 00129 00130 typedef struct _NDIS_802_11_BSSID_LIST 00131 { 00132 ULONG NumberOfItems; 00133 NDIS_WLAN_BSSID Bssid[1]; 00134 } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST; 00135 00136 typedef struct _NDIS_802_11_WEP 00137 { 00138 ULONG Length; 00139 ULONG KeyIndex; 00140 ULONG KeyLength; 00141 UCHAR KeyMaterial[1]; 00142 } NDIS_802_11_WEP, *PNDIS_802_11_WEP; 00143 00144 typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES { 00145 NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; 00146 NDIS_DEVICE_POWER_STATE MinPatternWakeUp; 00147 NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; 00148 } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES; 00149 00150 /* NDIS_PNP_CAPABILITIES.Flags constants */ 00151 #define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 00152 #define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002 00153 #define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004 00154 00155 typedef struct _NDIS_PNP_CAPABILITIES { 00156 ULONG Flags; 00157 NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities; 00158 } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES; 00159 00160 /* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */ 00161 typedef enum _NDIS_MEDIUM { 00162 NdisMedium802_3, 00163 NdisMedium802_5, 00164 NdisMediumFddi, 00165 NdisMediumWan, 00166 NdisMediumLocalTalk, 00167 NdisMediumDix, 00168 NdisMediumArcnetRaw, 00169 NdisMediumArcnet878_2, 00170 NdisMediumAtm, 00171 NdisMediumWirelessWan, 00172 NdisMediumIrda, 00173 NdisMediumBpc, 00174 NdisMediumCoWan, 00175 NdisMedium1394, 00176 NdisMediumMax 00177 } NDIS_MEDIUM, *PNDIS_MEDIUM; 00178 00179 typedef enum _NDIS_PHYSICAL_MEDIUM 00180 { 00181 NdisPhysicalMediumUnspecified, 00182 NdisPhysicalMediumWirelessLan, 00183 NdisPhysicalMediumCableModem, 00184 NdisPhysicalMediumPhoneLine, 00185 NdisPhysicalMediumPowerLine, 00186 NdisPhysicalMediumDSL, 00187 NdisPhysicalMediumFibreChannel, 00188 NdisPhysicalMedium1394, 00189 NdisPhysicalMediumWirelessWan, 00190 NdisPhysicalMediumNative802_11, 00191 NdisPhysicalMediumBluetooth, 00192 NdisPhysicalMediumInfiniband, 00193 NdisPhysicalMediumWiMax, 00194 NdisPhysicalMediumUWB, 00195 NdisPhysicalMedium802_3, 00196 NdisPhysicalMedium802_5, 00197 NdisPhysicalMediumIrda, 00198 NdisPhysicalMediumWiredWAN, 00199 NdisPhysicalMediumWiredCoWan, 00200 NdisPhysicalMediumOther, 00201 NdisPhysicalMediumMax 00202 } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM; 00203 00204 typedef ULONG NDIS_OID, *PNDIS_OID; 00205 00206 /* Required Object IDs (OIDs) */ 00207 #define OID_GEN_SUPPORTED_LIST 0x00010101 00208 #define OID_GEN_HARDWARE_STATUS 0x00010102 00209 #define OID_GEN_MEDIA_SUPPORTED 0x00010103 00210 #define OID_GEN_MEDIA_IN_USE 0x00010104 00211 #define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 00212 #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 00213 #define OID_GEN_LINK_SPEED 0x00010107 00214 #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 00215 #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 00216 #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A 00217 #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B 00218 #define OID_GEN_VENDOR_ID 0x0001010C 00219 #define OID_GEN_VENDOR_DESCRIPTION 0x0001010D 00220 #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E 00221 #define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F 00222 #define OID_GEN_DRIVER_VERSION 0x00010110 00223 #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 00224 #define OID_GEN_PROTOCOL_OPTIONS 0x00010112 00225 #define OID_GEN_MAC_OPTIONS 0x00010113 00226 #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 00227 #define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 00228 #define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 00229 #define OID_GEN_SUPPORTED_GUIDS 0x00010117 00230 #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 00231 #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 00232 #define OID_GEN_MACHINE_NAME 0x0001021A 00233 #define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B 00234 #define OID_GEN_VLAN_ID 0x0001021C 00235 00236 /* Optional OIDs */ 00237 #define OID_GEN_MEDIA_CAPABILITIES 0x00010201 00238 #define OID_GEN_PHYSICAL_MEDIUM 0x00010202 00239 00240 /* Required statistics OIDs */ 00241 #define OID_GEN_XMIT_OK 0x00020101 00242 #define OID_GEN_RCV_OK 0x00020102 00243 #define OID_GEN_XMIT_ERROR 0x00020103 00244 #define OID_GEN_RCV_ERROR 0x00020104 00245 #define OID_GEN_RCV_NO_BUFFER 0x00020105 00246 00247 /* Optional statistics OIDs */ 00248 #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 00249 #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 00250 #define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 00251 #define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 00252 #define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 00253 #define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 00254 #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 00255 #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 00256 #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 00257 #define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A 00258 #define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B 00259 #define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C 00260 #define OID_GEN_RCV_CRC_ERROR 0x0002020D 00261 #define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E 00262 #define OID_GEN_GET_TIME_CAPS 0x0002020F 00263 #define OID_GEN_GET_NETCARD_TIME 0x00020210 00264 #define OID_GEN_NETCARD_LOAD 0x00020211 00265 #define OID_GEN_DEVICE_PROFILE 0x00020212 00266 #define OID_GEN_INIT_TIME_MS 0x00020213 00267 #define OID_GEN_RESET_COUNTS 0x00020214 00268 #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215 00269 #define OID_GEN_FRIENDLY_NAME 0x00020216 00270 #define OID_GEN_MINIPORT_INFO 0x00020217 00271 #define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218 00272 00273 /* IEEE 802.3 (Ethernet) OIDs */ 00274 #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 00275 00276 #define OID_802_3_PERMANENT_ADDRESS 0x01010101 00277 #define OID_802_3_CURRENT_ADDRESS 0x01010102 00278 #define OID_802_3_MULTICAST_LIST 0x01010103 00279 #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 00280 #define OID_802_3_MAC_OPTIONS 0x01010105 00281 #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 00282 #define OID_802_3_XMIT_ONE_COLLISION 0x01020102 00283 #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 00284 #define OID_802_3_XMIT_DEFERRED 0x01020201 00285 #define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 00286 #define OID_802_3_RCV_OVERRUN 0x01020203 00287 #define OID_802_3_XMIT_UNDERRUN 0x01020204 00288 #define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 00289 #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 00290 #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 00291 00292 /* IEEE 802.11 (WLAN) OIDs */ 00293 #define OID_802_11_BSSID 0x0D010101 00294 #define OID_802_11_SSID 0x0D010102 00295 #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 00296 #define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 00297 #define OID_802_11_TX_POWER_LEVEL 0x0D010205 00298 #define OID_802_11_RSSI 0x0D010206 00299 #define OID_802_11_RSSI_TRIGGER 0x0D010207 00300 #define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 00301 #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 00302 #define OID_802_11_RTS_THRESHOLD 0x0D01020A 00303 #define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B 00304 #define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C 00305 #define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D 00306 #define OID_802_11_SUPPORTED_RATES 0x0D01020E 00307 #define OID_802_11_DESIRED_RATES 0x0D010210 00308 #define OID_802_11_CONFIGURATION 0x0D010211 00309 #define OID_802_11_STATISTICS 0x0D020212 00310 #define OID_802_11_ADD_WEP 0x0D010113 00311 #define OID_802_11_REMOVE_WEP 0x0D010114 00312 #define OID_802_11_DISASSOCIATE 0x0D010115 00313 #define OID_802_11_POWER_MODE 0x0D010216 00314 #define OID_802_11_BSSID_LIST 0x0D010217 00315 #define OID_802_11_AUTHENTICATION_MODE 0x0D010118 00316 #define OID_802_11_PRIVACY_FILTER 0x0D010119 00317 #define OID_802_11_BSSID_LIST_SCAN 0x0D01011A 00318 #define OID_802_11_WEP_STATUS 0x0D01011B 00319 #define OID_802_11_RELOAD_DEFAULTS 0x0D01011C 00320 00321 /* OID_GEN_MINIPORT_INFO constants */ 00322 #define NDIS_MINIPORT_BUS_MASTER 0x00000001 00323 #define NDIS_MINIPORT_WDM_DRIVER 0x00000002 00324 #define NDIS_MINIPORT_SG_LIST 0x00000004 00325 #define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008 00326 #define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010 00327 #define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020 00328 #define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040 00329 #define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080 00330 #define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100 00331 #define NDIS_MINIPORT_IS_NDIS_5 0x00000200 00332 #define NDIS_MINIPORT_IS_CO 0x00000400 00333 #define NDIS_MINIPORT_DESERIALIZE 0x00000800 00334 #define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000 00335 #define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000 00336 #define NDIS_MINIPORT_NETBOOT_CARD 0x00004000 00337 #define NDIS_MINIPORT_PM_SUPPORTED 0x00008000 00338 #define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000 00339 #define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000 00340 #define NDIS_MINIPORT_HIDDEN 0x00040000 00341 #define NDIS_MINIPORT_SWENUM 0x00080000 00342 #define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000 00343 #define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000 00344 #define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000 00345 #define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000 00346 #define NDIS_MINIPORT_64BITS_DMA 0x01000000 00347 00348 #define IOCTL_NDIS_QUERY_GLOBAL_STATS CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, \ 00349 0, \ 00350 METHOD_OUT_DIRECT, \ 00351 FILE_ANY_ACCESS) 00352 00353 /* Hardware status codes (OID_GEN_HARDWARE_STATUS) */ 00354 typedef enum _NDIS_HARDWARE_STATUS { 00355 NdisHardwareStatusReady, 00356 NdisHardwareStatusInitializing, 00357 NdisHardwareStatusReset, 00358 NdisHardwareStatusClosing, 00359 NdisHardwareStatusNotReady 00360 } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS; 00361 00362 /* OID_GEN_GET_TIME_CAPS */ 00363 typedef struct _GEN_GET_TIME_CAPS { 00364 ULONG Flags; 00365 ULONG ClockPrecision; 00366 } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS; 00367 00368 /* OID_GEN_GET_NETCARD_TIME */ 00369 typedef struct _GEN_GET_NETCARD_TIME { 00370 ULONGLONG ReadTime; 00371 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME; 00372 00373 /* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */ 00374 typedef enum _NDIS_MEDIA_STATE { 00375 NdisMediaStateConnected, 00376 NdisMediaStateDisconnected 00377 } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE; 00378 00379 #ifndef _NDIS_ 00380 typedef int NDIS_STATUS, *PNDIS_STATUS; 00381 #endif 00382 00383 /* OID_GEN_SUPPORTED_GUIDS */ 00384 typedef struct _NDIS_GUID { 00385 GUID Guid; 00386 union { 00387 NDIS_OID Oid; 00388 NDIS_STATUS Status; 00389 } u; 00390 ULONG Size; 00391 ULONG Flags; 00392 } NDIS_GUID, *PNDIS_GUID; 00393 00394 typedef struct _NDIS_PM_PACKET_PATTERN { 00395 ULONG Priority; 00396 ULONG Reserved; 00397 ULONG MaskSize; 00398 ULONG PatternOffset; 00399 ULONG PatternSize; 00400 ULONG PatternFlags; 00401 } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN; 00402 00403 /* OID_GEN_NETWORK_LAYER_ADDRESSES */ 00404 typedef struct _NETWORK_ADDRESS { 00405 USHORT AddressLength; 00406 USHORT AddressType; 00407 UCHAR Address[1]; 00408 } NETWORK_ADDRESS, *PNETWORK_ADDRESS; 00409 00410 typedef struct _NETWORK_ADDRESS_LIST { 00411 LONG AddressCount; 00412 USHORT AddressType; 00413 NETWORK_ADDRESS Address[1]; 00414 } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST; 00415 00416 /* OID_GEN_TRANSPORT_HEADER_OFFSET */ 00417 typedef struct _TRANSPORT_HEADER_OFFSET { 00418 USHORT ProtocolType; 00419 USHORT HeaderOffset; 00420 } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET; 00421 00422 /* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */ 00423 typedef struct _NDIS_CO_LINK_SPEED { 00424 ULONG Outbound; 00425 ULONG Inbound; 00426 } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED; 00427 00428 #ifdef __cplusplus 00429 } 00430 #endif 00431 00432 #endif /* _NTDDNDIS_ */ Generated on Sun May 27 2012 04:32:06 for ReactOS by
1.7.6.1
|