/*++ BUILD Version: 0001 // Increment this if a change has global effects Copyright (c) 1990-1999 Microsoft Corporation Module Name: ntddndis.h Abstract: This is the include file that defines all constants and types for accessing the Network driver interface device. Author: NDIS/ATM Development Team Revision History: added the correct values for NDIS 3.0. added Pnp IoCTLs and structures added general co ndis oids. added PnP and PM OIDs. --*/ #ifndef _NTDDNDIS_ #pragma option push -b -a8 -pc -A- /*P_O_Push*/ #define _NTDDNDIS_ #if _MSC_VER > 1000 #pragma once #endif #ifdef __cplusplus extern "C" { #endif // // Device Name - this string is the name of the device. It is the name // that should be passed to NtOpenFile when accessing the device. // // Note: For devices that support multiple units, it should be suffixed // with the Ascii representation of the unit number. // #define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN" // // NtDeviceIoControlFile IoControlCode values for this device. // // Warning: Remember that the low two bits of the code specify how the // buffers are passed to the driver! // #define _NDIS_CONTROL_CODE(request,method) \ CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS) #define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT) #define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1, METHOD_OUT_DIRECT) #define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2, METHOD_BUFFERED) #define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3, METHOD_OUT_DIRECT) #define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4, METHOD_BUFFERED) #define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5, METHOD_BUFFERED) #define IOCTL_NDIS_GET_DEVICE_BUNDLE _NDIS_CONTROL_CODE(6, METHOD_OUT_DIRECT) #define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7, METHOD_OUT_DIRECT) // // NtDeviceIoControlFile InputBuffer/OutputBuffer record structures for // this device. // // // This is the type of an NDIS OID value. // typedef ULONG NDIS_OID, *PNDIS_OID; // // IOCTL_NDIS_QUERY_ALL_STATS returns a sequence of these, packed // together. This structure is unaligned because not all statistics // have a length that is a ULONG multiple. // typedef UNALIGNED struct _NDIS_STATISTICS_VALUE { NDIS_OID Oid; ULONG DataLength; UCHAR Data[1]; // variable length } NDIS_STATISTICS_VALUE, *PNDIS_STATISTICS_VALUE; // // Structure used to define a self-contained variable data structure // typedef struct _NDIS_VAR_DATA_DESC { USHORT Length; // # of octects of data USHORT MaximumLength; // # of octects available ULONG_PTR Offset; // Offset of data relative to the descriptor } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC; #ifndef GUID_DEFINED #include #endif // !GUID_DEFINED // // General Objects // // // Required OIDs // #define OID_GEN_SUPPORTED_LIST 0x00010101 #define OID_GEN_HARDWARE_STATUS 0x00010102 #define OID_GEN_MEDIA_SUPPORTED 0x00010103 #define OID_GEN_MEDIA_IN_USE 0x00010104 #define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105 #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106 #define OID_GEN_LINK_SPEED 0x00010107 #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108 #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109 #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B #define OID_GEN_VENDOR_ID 0x0001010C #define OID_GEN_VENDOR_DESCRIPTION 0x0001010D #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E #define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F #define OID_GEN_DRIVER_VERSION 0x00010110 #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111 #define OID_GEN_PROTOCOL_OPTIONS 0x00010112 #define OID_GEN_MAC_OPTIONS 0x00010113 #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114 #define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115 #define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116 #define OID_GEN_SUPPORTED_GUIDS 0x00010117 #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 // Set only #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 // Set only // // Optional OIDs // #define OID_GEN_MEDIA_CAPABILITIES 0x00010201 #define OID_GEN_PHYSICAL_MEDIUM 0x00010202 // // Required statistics // #define OID_GEN_XMIT_OK 0x00020101 #define OID_GEN_RCV_OK 0x00020102 #define OID_GEN_XMIT_ERROR 0x00020103 #define OID_GEN_RCV_ERROR 0x00020104 #define OID_GEN_RCV_NO_BUFFER 0x00020105 // // Optional statistics // #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201 #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202 #define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203 #define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204 #define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205 #define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206 #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207 #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208 #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209 #define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A #define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B #define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C #define OID_GEN_RCV_CRC_ERROR 0x0002020D #define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E #define OID_GEN_GET_TIME_CAPS 0x0002020F #define OID_GEN_GET_NETCARD_TIME 0x00020210 #define OID_GEN_NETCARD_LOAD 0x00020211 #define OID_GEN_DEVICE_PROFILE 0x00020212 // // The following is exported by NDIS itself and is only queryable. It returns // the time in milliseconds a driver took to initialize. // #define OID_GEN_INIT_TIME_MS 0x00020213 #define OID_GEN_RESET_COUNTS 0x00020214 #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215 #define OID_GEN_FRIENDLY_NAME 0x00020216 // // These are connection-oriented general OIDs. // These replace the above OIDs for connection-oriented media. // #define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST #define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS #define OID_GEN_CO_MEDIA_SUPPORTED OID_GEN_MEDIA_SUPPORTED #define OID_GEN_CO_MEDIA_IN_USE OID_GEN_MEDIA_IN_USE #define OID_GEN_CO_LINK_SPEED OID_GEN_LINK_SPEED #define OID_GEN_CO_VENDOR_ID OID_GEN_VENDOR_ID #define OID_GEN_CO_VENDOR_DESCRIPTION OID_GEN_VENDOR_DESCRIPTION #define OID_GEN_CO_DRIVER_VERSION OID_GEN_DRIVER_VERSION #define OID_GEN_CO_PROTOCOL_OPTIONS OID_GEN_PROTOCOL_OPTIONS #define OID_GEN_CO_MAC_OPTIONS OID_GEN_MAC_OPTIONS #define OID_GEN_CO_MEDIA_CONNECT_STATUS OID_GEN_MEDIA_CONNECT_STATUS #define OID_GEN_CO_VENDOR_DRIVER_VERSION OID_GEN_VENDOR_DRIVER_VERSION #define OID_GEN_CO_SUPPORTED_GUIDS OID_GEN_SUPPORTED_GUIDS #define OID_GEN_CO_GET_TIME_CAPS OID_GEN_GET_TIME_CAPS #define OID_GEN_CO_GET_NETCARD_TIME OID_GEN_GET_NETCARD_TIME #define OID_GEN_CO_MINIMUM_LINK_SPEED 0x00020120 // // These are connection-oriented statistics OIDs. // #define OID_GEN_CO_XMIT_PDUS_OK OID_GEN_XMIT_OK #define OID_GEN_CO_RCV_PDUS_OK OID_GEN_RCV_OK #define OID_GEN_CO_XMIT_PDUS_ERROR OID_GEN_XMIT_ERROR #define OID_GEN_CO_RCV_PDUS_ERROR OID_GEN_RCV_ERROR #define OID_GEN_CO_RCV_PDUS_NO_BUFFER OID_GEN_RCV_NO_BUFFER #define OID_GEN_CO_RCV_CRC_ERROR OID_GEN_RCV_CRC_ERROR #define OID_GEN_CO_TRANSMIT_QUEUE_LENGTH OID_GEN_TRANSMIT_QUEUE_LENGTH #define OID_GEN_CO_BYTES_XMIT OID_GEN_DIRECTED_BYTES_XMIT #define OID_GEN_CO_BYTES_RCV OID_GEN_DIRECTED_BYTES_RCV #define OID_GEN_CO_NETCARD_LOAD OID_GEN_NETCARD_LOAD #define OID_GEN_CO_DEVICE_PROFILE OID_GEN_DEVICE_PROFILE #define OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020221 // // 802.3 Objects (Ethernet) // #define OID_802_3_PERMANENT_ADDRESS 0x01010101 #define OID_802_3_CURRENT_ADDRESS 0x01010102 #define OID_802_3_MULTICAST_LIST 0x01010103 #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104 #define OID_802_3_MAC_OPTIONS 0x01010105 #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001 #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101 #define OID_802_3_XMIT_ONE_COLLISION 0x01020102 #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103 #define OID_802_3_XMIT_DEFERRED 0x01020201 #define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202 #define OID_802_3_RCV_OVERRUN 0x01020203 #define OID_802_3_XMIT_UNDERRUN 0x01020204 #define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205 #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206 #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207 // // 802.5 Objects (Token-Ring) // #define OID_802_5_PERMANENT_ADDRESS 0x02010101 #define OID_802_5_CURRENT_ADDRESS 0x02010102 #define OID_802_5_CURRENT_FUNCTIONAL 0x02010103 #define OID_802_5_CURRENT_GROUP 0x02010104 #define OID_802_5_LAST_OPEN_STATUS 0x02010105 #define OID_802_5_CURRENT_RING_STATUS 0x02010106 #define OID_802_5_CURRENT_RING_STATE 0x02010107 #define OID_802_5_LINE_ERRORS 0x02020101 #define OID_802_5_LOST_FRAMES 0x02020102 #define OID_802_5_BURST_ERRORS 0x02020201 #define OID_802_5_AC_ERRORS 0x02020202 #define OID_802_5_ABORT_DELIMETERS 0x02020203 #define OID_802_5_FRAME_COPIED_ERRORS 0x02020204 #define OID_802_5_FREQUENCY_ERRORS 0x02020205 #define OID_802_5_TOKEN_ERRORS 0x02020206 #define OID_802_5_INTERNAL_ERRORS 0x02020207 // // FDDI Objects // #define OID_FDDI_LONG_PERMANENT_ADDR 0x03010101 #define OID_FDDI_LONG_CURRENT_ADDR 0x03010102 #define OID_FDDI_LONG_MULTICAST_LIST 0x03010103 #define OID_FDDI_LONG_MAX_LIST_SIZE 0x03010104 #define OID_FDDI_SHORT_PERMANENT_ADDR 0x03010105 #define OID_FDDI_SHORT_CURRENT_ADDR 0x03010106 #define OID_FDDI_SHORT_MULTICAST_LIST 0x03010107 #define OID_FDDI_SHORT_MAX_LIST_SIZE 0x03010108 #define OID_FDDI_ATTACHMENT_TYPE 0x03020101 #define OID_FDDI_UPSTREAM_NODE_LONG 0x03020102 #define OID_FDDI_DOWNSTREAM_NODE_LONG 0x03020103 #define OID_FDDI_FRAME_ERRORS 0x03020104 #define OID_FDDI_FRAMES_LOST 0x03020105 #define OID_FDDI_RING_MGT_STATE 0x03020106 #define OID_FDDI_LCT_FAILURES 0x03020107 #define OID_FDDI_LEM_REJECTS 0x03020108 #define OID_FDDI_LCONNECTION_STATE 0x03020109 #define OID_FDDI_SMT_STATION_ID 0x03030201 #define OID_FDDI_SMT_OP_VERSION_ID 0x03030202 #define OID_FDDI_SMT_HI_VERSION_ID 0x03030203 #define OID_FDDI_SMT_LO_VERSION_ID 0x03030204 #define OID_FDDI_SMT_MANUFACTURER_DATA 0x03030205 #define OID_FDDI_SMT_USER_DATA 0x03030206 #define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207 #define OID_FDDI_SMT_MAC_CT 0x03030208 #define OID_FDDI_SMT_NON_MASTER_CT 0x03030209 #define OID_FDDI_SMT_MASTER_CT 0x0303020A #define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020B #define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020C #define OID_FDDI_SMT_CONFIG_POLICY 0x0303020D #define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020E #define OID_FDDI_SMT_T_NOTIFY 0x0303020F #define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210 #define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211 #define OID_FDDI_SMT_PORT_INDEXES 0x03030212 #define OID_FDDI_SMT_MAC_INDEXES 0x03030213 #define OID_FDDI_SMT_BYPASS_PRESENT 0x03030214 #define OID_FDDI_SMT_ECM_STATE 0x03030215 #define OID_FDDI_SMT_CF_STATE 0x03030216 #define OID_FDDI_SMT_HOLD_STATE 0x03030217 #define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218 #define OID_FDDI_SMT_STATION_STATUS 0x03030219 #define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021A #define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021B #define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021C #define OID_FDDI_SMT_SET_COUNT 0x0303021D #define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021E #define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021F #define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220 #define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221 #define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222 #define OID_FDDI_MAC_AVAILABLE_PATHS 0x03030223 #define OID_FDDI_MAC_CURRENT_PATH 0x03030224 #define OID_FDDI_MAC_UPSTREAM_NBR 0x03030225 #define OID_FDDI_MAC_DOWNSTREAM_NBR 0x03030226 #define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227 #define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228 #define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229 #define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022A #define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022B #define OID_FDDI_MAC_INDEX 0x0303022C #define OID_FDDI_MAC_SMT_ADDRESS 0x0303022D #define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022E #define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022F #define OID_FDDI_MAC_T_REQ 0x03030230 #define OID_FDDI_MAC_T_NEG 0x03030231 #define OID_FDDI_MAC_T_MAX 0x03030232 #define OID_FDDI_MAC_TVX_VALUE 0x03030233 #define OID_FDDI_MAC_T_PRI0 0x03030234 #define OID_FDDI_MAC_T_PRI1 0x03030235 #define OID_FDDI_MAC_T_PRI2 0x03030236 #define OID_FDDI_MAC_T_PRI3 0x03030237 #define OID_FDDI_MAC_T_PRI4 0x03030238 #define OID_FDDI_MAC_T_PRI5 0x03030239 #define OID_FDDI_MAC_T_PRI6 0x0303023A #define OID_FDDI_MAC_FRAME_CT 0x0303023B #define OID_FDDI_MAC_COPIED_CT 0x0303023C #define OID_FDDI_MAC_TRANSMIT_CT 0x0303023D #define OID_FDDI_MAC_TOKEN_CT 0x0303023E #define OID_FDDI_MAC_ERROR_CT 0x0303023F #define OID_FDDI_MAC_LOST_CT 0x03030240 #define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241 #define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242 #define OID_FDDI_MAC_LATE_CT 0x03030243 #define OID_FDDI_MAC_RING_OP_CT 0x03030244 #define OID_FDDI_MAC_FRAME_ERROR_THRESHOLD 0x03030245 #define OID_FDDI_MAC_FRAME_ERROR_RATIO 0x03030246 #define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247 #define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248 #define OID_FDDI_MAC_RMT_STATE 0x03030249 #define OID_FDDI_MAC_DA_FLAG 0x0303024A #define OID_FDDI_MAC_UNDA_FLAG 0x0303024B #define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024C #define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024D #define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024E #define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024F #define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250 #define OID_FDDI_PATH_INDEX 0x03030251 #define OID_FDDI_PATH_RING_LATENCY 0x03030252 #define OID_FDDI_PATH_TRACE_STATUS 0x03030253 #define OID_FDDI_PATH_SBA_PAYLOAD 0x03030254 #define OID_FDDI_PATH_SBA_OVERHEAD 0x03030255 #define OID_FDDI_PATH_CONFIGURATION 0x03030256 #define OID_FDDI_PATH_T_R_MODE 0x03030257 #define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258 #define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259 #define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025A #define OID_FDDI_PATH_MAX_T_REQ 0x0303025B #define OID_FDDI_PORT_MY_TYPE 0x0303025C #define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025D #define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025E #define OID_FDDI_PORT_MAC_INDICATED 0x0303025F #define OID_FDDI_PORT_CURRENT_PATH 0x03030260 #define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261 #define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262 #define OID_FDDI_PORT_AVAILABLE_PATHS 0x03030263 #define OID_FDDI_PORT_MAC_LOOP_TIME 0x03030264 #define OID_FDDI_PORT_PMD_CLASS 0x03030265 #define OID_FDDI_PORT_CONNECTION_CAPABILITIES 0x03030266 #define OID_FDDI_PORT_INDEX 0x03030267 #define OID_FDDI_PORT_MAINT_LS 0x03030268 #define OID_FDDI_PORT_BS_FLAG 0x03030269 #define OID_FDDI_PORT_PC_LS 0x0303026A #define OID_FDDI_PORT_EB_ERROR_CT 0x0303026B #define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026C #define OID_FDDI_PORT_LER_ESTIMATE 0x0303026D #define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026E #define OID_FDDI_PORT_LEM_CT 0x0303026F #define OID_FDDI_PORT_LER_CUTOFF 0x03030270 #define OID_FDDI_PORT_LER_ALARM 0x03030271 #define OID_FDDI_PORT_CONNNECT_STATE 0x03030272 #define OID_FDDI_PORT_PCM_STATE 0x03030273 #define OID_FDDI_PORT_PC_WITHHOLD 0x03030274 #define OID_FDDI_PORT_LER_FLAG 0x03030275 #define OID_FDDI_PORT_HARDWARE_PRESENT 0x03030276 #define OID_FDDI_SMT_STATION_ACTION 0x03030277 #define OID_FDDI_PORT_ACTION 0x03030278 #define OID_FDDI_IF_DESCR 0x03030279 #define OID_FDDI_IF_TYPE 0x0303027A #define OID_FDDI_IF_MTU 0x0303027B #define OID_FDDI_IF_SPEED 0x0303027C #define OID_FDDI_IF_PHYS_ADDRESS 0x0303027D #define OID_FDDI_IF_ADMIN_STATUS 0x0303027E #define OID_FDDI_IF_OPER_STATUS 0x0303027F #define OID_FDDI_IF_LAST_CHANGE 0x03030280 #define OID_FDDI_IF_IN_OCTETS 0x03030281 #define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282 #define OID_FDDI_IF_IN_NUCAST_PKTS 0x03030283 #define OID_FDDI_IF_IN_DISCARDS 0x03030284 #define OID_FDDI_IF_IN_ERRORS 0x03030285 #define OID_FDDI_IF_IN_UNKNOWN_PROTOS 0x03030286 #define OID_FDDI_IF_OUT_OCTETS 0x03030287 #define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288 #define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289 #define OID_FDDI_IF_OUT_DISCARDS 0x0303028A #define OID_FDDI_IF_OUT_ERRORS 0x0303028B #define OID_FDDI_IF_OUT_QLEN 0x0303028C #define OID_FDDI_IF_SPECIFIC 0x0303028D // // WAN objects // #define OID_WAN_PERMANENT_ADDRESS 0x04010101 #define OID_WAN_CURRENT_ADDRESS 0x04010102 #define OID_WAN_QUALITY_OF_SERVICE 0x04010103 #define OID_WAN_PROTOCOL_TYPE 0x04010104 #define OID_WAN_MEDIUM_SUBTYPE 0x04010105 #define OID_WAN_HEADER_FORMAT 0x04010106 #define OID_WAN_GET_INFO 0x04010107 #define OID_WAN_SET_LINK_INFO 0x04010108 #define OID_WAN_GET_LINK_INFO 0x04010109 #define OID_WAN_LINE_COUNT 0x0401010A #define OID_WAN_PROTOCOL_CAPS 0x0401010B #define OID_WAN_GET_BRIDGE_INFO 0x0401020A #define OID_WAN_SET_BRIDGE_INFO 0x0401020B #define OID_WAN_GET_COMP_INFO 0x0401020C #define OID_WAN_SET_COMP_INFO 0x0401020D #define OID_WAN_GET_STATS_INFO 0x0401020E // // These are connection-oriented WAN OIDs. // These replace the above OIDs for CoNDIS WAN Miniports // #define OID_WAN_CO_GET_INFO 0x04010180 #define OID_WAN_CO_SET_LINK_INFO 0x04010181 #define OID_WAN_CO_GET_LINK_INFO 0x04010182 #define OID_WAN_CO_GET_COMP_INFO 0x04010280 #define OID_WAN_CO_SET_COMP_INFO 0x04010281 #define OID_WAN_CO_GET_STATS_INFO 0x04010282 // // LocalTalk objects // #define OID_LTALK_CURRENT_NODE_ID 0x05010102 #define OID_LTALK_IN_BROADCASTS 0x05020101 #define OID_LTALK_IN_LENGTH_ERRORS 0x05020102 #define OID_LTALK_OUT_NO_HANDLERS 0x05020201 #define OID_LTALK_COLLISIONS 0x05020202 #define OID_LTALK_DEFERS 0x05020203 #define OID_LTALK_NO_DATA_ERRORS 0x05020204 #define OID_LTALK_RANDOM_CTS_ERRORS 0x05020205 #define OID_LTALK_FCS_ERRORS 0x05020206 // // Arcnet objects // #define OID_ARCNET_PERMANENT_ADDRESS 0x06010101 #define OID_ARCNET_CURRENT_ADDRESS 0x06010102 #define OID_ARCNET_RECONFIGURATIONS 0x06020201 // // TAPI objects // #define OID_TAPI_ACCEPT 0x07030101 #define OID_TAPI_ANSWER 0x07030102 #define OID_TAPI_CLOSE 0x07030103 #define OID_TAPI_CLOSE_CALL 0x07030104 #define OID_TAPI_CONDITIONAL_MEDIA_DETECTION 0x07030105 #define OID_TAPI_CONFIG_DIALOG 0x07030106 #define OID_TAPI_DEV_SPECIFIC 0x07030107 #define OID_TAPI_DIAL 0x07030108 #define OID_TAPI_DROP 0x07030109 #define OID_TAPI_GET_ADDRESS_CAPS 0x0703010A #define OID_TAPI_GET_ADDRESS_ID 0x0703010B #define OID_TAPI_GET_ADDRESS_STATUS 0x0703010C #define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010D #define OID_TAPI_GET_CALL_INFO 0x0703010E #define OID_TAPI_GET_CALL_STATUS 0x0703010F #define OID_TAPI_GET_DEV_CAPS 0x07030110 #define OID_TAPI_GET_DEV_CONFIG 0x07030111 #define OID_TAPI_GET_EXTENSION_ID 0x07030112 #define OID_TAPI_GET_ID 0x07030113 #define OID_TAPI_GET_LINE_DEV_STATUS 0x07030114 #define OID_TAPI_MAKE_CALL 0x07030115 #define OID_TAPI_NEGOTIATE_EXT_VERSION 0x07030116 #define OID_TAPI_OPEN 0x07030117 #define OID_TAPI_PROVIDER_INITIALIZE 0x07030118 #define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119 #define OID_TAPI_SECURE_CALL 0x0703011A #define OID_TAPI_SELECT_EXT_VERSION 0x0703011B #define OID_TAPI_SEND_USER_USER_INFO 0x0703011C #define OID_TAPI_SET_APP_SPECIFIC 0x0703011D #define OID_TAPI_SET_CALL_PARAMS 0x0703011E #define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011F #define OID_TAPI_SET_DEV_CONFIG 0x07030120 #define OID_TAPI_SET_MEDIA_MODE 0x07030121 #define OID_TAPI_SET_STATUS_MESSAGES 0x07030122 #define OID_TAPI_GATHER_DIGITS 0x07030123 #define OID_TAPI_MONITOR_DIGITS 0x07030124 // // ATM Connection Oriented OIDs // #define OID_ATM_SUPPORTED_VC_RATES 0x08010101 #define OID_ATM_SUPPORTED_SERVICE_CATEGORY 0x08010102 #define OID_ATM_SUPPORTED_AAL_TYPES 0x08010103 #define OID_ATM_HW_CURRENT_ADDRESS 0x08010104 #define OID_ATM_MAX_ACTIVE_VCS 0x08010105 #define OID_ATM_MAX_ACTIVE_VCI_BITS 0x08010106 #define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107 #define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108 #define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109 #define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010A #define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010B #define OID_ATM_SIGNALING_VPIVCI 0x08010201 #define OID_ATM_ASSIGNED_VPI 0x08010202 #define OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES 0x08010203 #define OID_ATM_RELEASE_ACCESS_NET_RESOURCES 0x08010204 #define OID_ATM_ILMI_VPIVCI 0x08010205 #define OID_ATM_DIGITAL_BROADCAST_VPIVCI 0x08010206 #define OID_ATM_GET_NEAREST_FLOW 0x08010207 #define OID_ATM_ALIGNMENT_REQUIRED 0x08010208 #define OID_ATM_LECS_ADDRESS 0x08010209 #define OID_ATM_SERVICE_ADDRESS 0x0801020A #define OID_ATM_CALL_PROCEEDING 0x0801020B // UNI 4.0 #define OID_ATM_CALL_ALERTING 0x0801020C // UNI 4.0 #define OID_ATM_PARTY_ALERTING 0x0801020D // UNI 4.0 #define OID_ATM_CALL_NOTIFY 0x0801020E // UNI 4.0 #define OID_ATM_MY_IP_NM_ADDRESS 0x0801020F // // ATM specific statistics OIDs. // #define OID_ATM_RCV_CELLS_OK 0x08020101 #define OID_ATM_XMIT_CELLS_OK 0x08020102 #define OID_ATM_RCV_CELLS_DROPPED 0x08020103 #define OID_ATM_RCV_INVALID_VPI_VCI 0x08020201 #define OID_ATM_CELLS_HEC_ERROR 0x08020202 #define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203 // // PCCA (Wireless) object // // // All WirelessWAN devices must support the following OIDs // #define OID_WW_GEN_NETWORK_TYPES_SUPPORTED 0x09010101 #define OID_WW_GEN_NETWORK_TYPE_IN_USE 0x09010102 #define OID_WW_GEN_HEADER_FORMATS_SUPPORTED 0x09010103 #define OID_WW_GEN_HEADER_FORMAT_IN_USE 0x09010104 #define OID_WW_GEN_INDICATION_REQUEST 0x09010105 #define OID_WW_GEN_DEVICE_INFO 0x09010106 #define OID_WW_GEN_OPERATION_MODE 0x09010107 #define OID_WW_GEN_LOCK_STATUS 0x09010108 #define OID_WW_GEN_DISABLE_TRANSMITTER 0x09010109 #define OID_WW_GEN_NETWORK_ID 0x0901010A #define OID_WW_GEN_PERMANENT_ADDRESS 0x0901010B #define OID_WW_GEN_CURRENT_ADDRESS 0x0901010C #define OID_WW_GEN_SUSPEND_DRIVER 0x0901010D #define OID_WW_GEN_BASESTATION_ID 0x0901010E #define OID_WW_GEN_CHANNEL_ID 0x0901010F #define OID_WW_GEN_ENCRYPTION_SUPPORTED 0x09010110 #define OID_WW_GEN_ENCRYPTION_IN_USE 0x09010111 #define OID_WW_GEN_ENCRYPTION_STATE 0x09010112 #define OID_WW_GEN_CHANNEL_QUALITY 0x09010113 #define OID_WW_GEN_REGISTRATION_STATUS 0x09010114 #define OID_WW_GEN_RADIO_LINK_SPEED 0x09010115 #define OID_WW_GEN_LATENCY 0x09010116 #define OID_WW_GEN_BATTERY_LEVEL 0x09010117 #define OID_WW_GEN_EXTERNAL_POWER 0x09010118 // // These are optional // #define OID_WW_GEN_PING_ADDRESS 0x09010201 #define OID_WW_GEN_RSSI 0x09010202 #define OID_WW_GEN_SIM_STATUS 0x09010203 #define OID_WW_GEN_ENABLE_SIM_PIN 0x09010204 #define OID_WW_GEN_CHANGE_SIM_PIN 0x09010205 #define OID_WW_GEN_SIM_PUK 0x09010206 #define OID_WW_GEN_SIM_EXCEPTION 0x09010207 // // Network Dependent OIDs - Mobitex: // #define OID_WW_MBX_SUBADDR 0x09050101 // OID 0x09050102 is reserved and may not be used #define OID_WW_MBX_FLEXLIST 0x09050103 #define OID_WW_MBX_GROUPLIST 0x09050104 #define OID_WW_MBX_TRAFFIC_AREA 0x09050105 #define OID_WW_MBX_LIVE_DIE 0x09050106 #define OID_WW_MBX_TEMP_DEFAULTLIST 0x09050107 // // Network Dependent OIDs - Pinpoint: // // // The following Pin Point characteristics have been deprecated by the // PCCA and are considered reserved values. They are include here only for // historical purposes and should not be used // #define OID_WW_PIN_LOC_AUTHORIZE 0x09090101 #define OID_WW_PIN_LAST_LOCATION 0x09090102 #define OID_WW_PIN_LOC_FIX 0x09090103 // // Network Dependent - CDPD: // #define OID_WW_CDPD_SPNI 0x090D0101 #define OID_WW_CDPD_WASI 0x090D0102 #define OID_WW_CDPD_AREA_COLOR 0x090D0103 #define OID_WW_CDPD_TX_POWER_LEVEL 0x090D0104 #define OID_WW_CDPD_EID 0x090D0105 #define OID_WW_CDPD_HEADER_COMPRESSION 0x090D0106 #define OID_WW_CDPD_DATA_COMPRESSION 0x090D0107 #define OID_WW_CDPD_CHANNEL_SELECT 0x090D0108 #define OID_WW_CDPD_CHANNEL_STATE 0x090D0109 #define OID_WW_CDPD_NEI 0x090D010A #define OID_WW_CDPD_NEI_STATE 0x090D010B #define OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER 0x090D010C #define OID_WW_CDPD_SLEEP_MODE 0x090D010D // // At the request of the PCCA STD-201 Annex C working group the following OID // value has been superceeded by more specific objects. Its value is reserved by // the PCCA,is included here for historical purposes only, and should not be // used. // #define OID_WW_CDPD_CIRCUIT_SWITCHED 0x090D010E #define OID_WW_CDPD_TEI 0x090D010F #define OID_WW_CDPD_RSSI 0x090D0110 // // CDPD Circuit Switched objects // #define OID_WW_CDPD_CS_SERVICE_PREFERENCE 0x090D0111 #define OID_WW_CDPD_CS_SERVICE_STATUS 0x090D0112 #define OID_WW_CDPD_CS_INFO 0x090D0113 #define OID_WW_CDPD_CS_SUSPEND 0x090D0114 #define OID_WW_CDPD_CS_DEFAULT_DIAL_CODE 0x090D0115 #define OID_WW_CDPD_CS_CALLBACK 0x090D0116 #define OID_WW_CDPD_CS_SID_LIST 0x090D0117 #define OID_WW_CDPD_CS_CONFIGURATION 0x090D0118 // // Network Dependent - Ardis: // // // At the request of Ardis these OID value have been superceeded. Their // functionality has been merged with the DataTAC objects. Therefore // these values are reserved by the PCCA, are include here for // historical purposes only, and should not be used. // #define OID_WW_ARD_SNDCP 0x09110101 #define OID_WW_ARD_TMLY_MSG 0x09110102 #define OID_WW_ARD_DATAGRAM 0x09110103 // // Network Dependent - DataTac: // #define OID_WW_TAC_COMPRESSION 0x09150101 // // At the request of Motorola, the following two OID values have been // superceeded. Their functionality has been subsumed by other more specific // DataTac objects and should not be used. These values are reserved by the // PCCA and are include here only for historical purposes only. // #define OID_WW_TAC_SET_CONFIG 0x09150102 #define OID_WW_TAC_GET_STATUS 0x09150103 #define OID_WW_TAC_USER_HEADER 0x09150104 // // DataTAC characteristic object values // #define OID_WW_TAC_UNIQUE_SDU_TAG 0x09150105 #define OID_WW_TAC_SEND_COMMAND 0x09150106 #define OID_WW_TAC_GET_RESPONSE 0x09150107 #define OID_WW_TAC_DISABLE_RECEIVER 0x09150108 #define OID_WW_TAC_ANTENNA_MODE 0x09150109 #define OID_WW_TAC_FLUSH_DATA 0x0915010A #define OID_WW_TAC_SHUTDOWN_DEVICE 0x0915010B #define OID_WW_TAC_DEVICE_EXCEPTION 0x0915010C #define OID_WW_TAC_RECEIVE_EXCEPTION 0x0915010D #define OID_WW_TAC_BUFFER_EXCEPTION 0x0915010E #define OID_WW_TAC_BATTERY_EXCEPTION 0x0915010F #define OID_WW_TAC_TRANSMITTER_KEYED 0x09150110 #define OID_WW_TAC_SYSTEM_TABLE 0x09150111 #define OID_WW_TAC_CHANNEL_TABLE 0x09150112 #define OID_WW_TAC_DCHANNEL_TABLE 0x09150113 #define OID_WW_TAC_RECEIVE_QUEUE_COUNT 0x09150114 // // DataTac statistic object value // #define OID_WW_TAC_STATISTICS 0x09160101 // // Network Dependent - Metricom: // #define OID_WW_MET_FUNCTION 0x09190101 // // IRDA objects // #define OID_IRDA_RECEIVING 0x0A010100 #define OID_IRDA_TURNAROUND_TIME 0x0A010101 #define OID_IRDA_SUPPORTED_SPEEDS 0x0A010102 #define OID_IRDA_LINK_SPEED 0x0A010103 #define OID_IRDA_MEDIA_BUSY 0x0A010104 #define OID_IRDA_EXTRA_RCV_BOFS 0x0A010200 #define OID_IRDA_RATE_SNIFF 0x0A010201 #define OID_IRDA_UNICAST_LIST 0x0A010202 #define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0A010203 #define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0A010204 #define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0A010205 #define OID_IRDA_RESERVED1 0x0A01020A // The range between OID_IRDA_RESERVED1 #define OID_IRDA_RESERVED2 0x0A01020F // and OID_IRDA_RESERVED2 is reserved // // BPC OIDs // #define OID_BPC_ADAPTER_CAPS 0x0B010100 #define OID_BPC_DEVICES 0x0B010101 #define OID_BPC_DEVICE_CAPS 0x0B010102 #define OID_BPC_DEVICE_SETTINGS 0x0B010103 #define OID_BPC_CONNECTION_STATUS 0x0B010104 #define OID_BPC_ADDRESS_COMPARE 0x0B010105 #define OID_BPC_PROGRAM_GUIDE 0x0B010106 #define OID_BPC_LAST_ERROR 0x0B020107 #define OID_BPC_POOL 0x0B010108 #define OID_BPC_PROVIDER_SPECIFIC 0x0B020109 #define OID_BPC_ADAPTER_SPECIFIC 0x0B02010A #define OID_BPC_CONNECT 0x0B01010B #define OID_BPC_COMMIT 0x0B01010C #define OID_BPC_DISCONNECT 0x0B01010D #define OID_BPC_CONNECTION_ENABLE 0x0B01010E #define OID_BPC_POOL_RESERVE 0x0B01010F #define OID_BPC_POOL_RETURN 0x0B010110 #define OID_BPC_FORCE_RECEIVE 0x0B010111 #define OID_BPC_LAST 0x0B020112 // // IEEE1394 mandatory general OIDs. // #define OID_1394_LOCAL_NODE_INFO 0x0C010101 #define OID_1394_VC_INFO 0x0C010102 // // The following OIDs are not specific to a media. // // // These are objects for Connection-oriented media call-managers. // #define OID_CO_ADD_PVC 0xFE000001 #define OID_CO_DELETE_PVC 0xFE000002 #define OID_CO_GET_CALL_INFORMATION 0xFE000003 #define OID_CO_ADD_ADDRESS 0xFE000004 #define OID_CO_DELETE_ADDRESS 0xFE000005 #define OID_CO_GET_ADDRESSES 0xFE000006 #define OID_CO_ADDRESS_CHANGE 0xFE000007 #define OID_CO_SIGNALING_ENABLED 0xFE000008 #define OID_CO_SIGNALING_DISABLED 0xFE000009 #define OID_CO_AF_CLOSE 0xFE00000A // // Objects for call-managers and MCMs that support TAPI access. // #define OID_CO_TAPI_CM_CAPS 0xFE001001 #define OID_CO_TAPI_LINE_CAPS 0xFE001002 #define OID_CO_TAPI_ADDRESS_CAPS 0xFE001003 #define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xFE001004 #define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xFE001005 #define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xFE001006 #define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xFE001007 #define OID_CO_TAPI_REPORT_DIGITS 0xFE001008 #define OID_CO_TAPI_DONT_REPORT_DIGITS 0xFE001009 // // PnP and PM OIDs // #define OID_PNP_CAPABILITIES 0xFD010100 #define OID_PNP_SET_POWER 0xFD010101 #define OID_PNP_QUERY_POWER 0xFD010102 #define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103 #define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104 #define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105 #define OID_PNP_ENABLE_WAKE_UP 0xFD010106 // // PnP/PM Statistics (Optional). // #define OID_PNP_WAKE_UP_OK 0xFD020200 #define OID_PNP_WAKE_UP_ERROR 0xFD020201 // // The following bits are defined for OID_PNP_ENABLE_WAKE_UP // #define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001 #define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002 #define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004 // // TCP/IP OIDs // #define OID_TCP_TASK_OFFLOAD 0xFC010201 #define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202 #define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203 #define OID_TCP_SAN_SUPPORT 0xFC010204 // // Defines for FFP // #define OID_FFP_SUPPORT 0xFC010210 #define OID_FFP_FLUSH 0xFC010211 #define OID_FFP_CONTROL 0xFC010212 #define OID_FFP_PARAMS 0xFC010213 #define OID_FFP_DATA 0xFC010214 #define OID_FFP_DRIVER_STATS 0xFC020210 #define OID_FFP_ADAPTER_STATS 0xFC020211 // // Defines for QOS // #define OID_QOS_TC_SUPPORTED 0xFB010100 #define OID_QOS_REMAINING_BANDWIDTH 0xFB010101 #define OID_QOS_ISSLOW_FLOW 0xFB010102 #define OID_QOS_BESTEFFORT_BANDWIDTH 0xFB010103 #define OID_QOS_LATENCY 0xFB010104 #define OID_QOS_FLOW_IP_CONFORMING 0xFB010105 #define OID_QOS_FLOW_COUNT 0xFB010106 #define OID_QOS_NON_BESTEFFORT_LIMIT 0xFB010107 #define OID_QOS_SCHEDULING_PROFILES_SUPPORTED 0xFB010108 #define OID_QOS_CURRENT_SCHEDULING_PROFILE 0xFB010109 #define OID_QOS_TIMER_RESOLUTION 0xFB01010A #define OID_QOS_STATISTICS_BUFFER 0xFB01010B #define OID_QOS_HIERARCHY_CLASS 0xFB01010C #define OID_QOS_FLOW_MODE 0xFB01010D #define OID_QOS_ISSLOW_FRAGMENT_SIZE 0xFB01010E #define OID_QOS_FLOW_IP_NONCONFORMING 0xFB01010F #define OID_QOS_FLOW_8021P_CONFORMING 0xFB010110 #define OID_QOS_FLOW_8021P_NONCONFORMING 0xFB010111 // // NDIS Proxy OID_GEN_CO_DEVICE_PROFILE structure. The optional OID and // this structure is a generic means of describing a CO device's // capabilites, and is used by the NDIS Proxy to construct a TAPI device // capabilities structure. // typedef struct NDIS_CO_DEVICE_PROFILE { NDIS_VAR_DATA_DESC DeviceDescription; // e.g. 'GigabitATMNet' NDIS_VAR_DATA_DESC DevSpecificInfo; // special features ULONG ulTAPISupplementaryPassThru;// reserved in NT5 ULONG ulAddressModes; ULONG ulNumAddresses; ULONG ulBearerModes; ULONG ulMaxTxRate; // bytes per second ULONG ulMinTxRate; // bytes per second ULONG ulMaxRxRate; // bytes per second ULONG ulMinRxRate; // bytes per second ULONG ulMediaModes; // // Tone/digit generation and recognition capabilities // ULONG ulGenerateToneModes; ULONG ulGenerateToneMaxNumFreq; ULONG ulGenerateDigitModes; ULONG ulMonitorToneMaxNumFreq; ULONG ulMonitorToneMaxNumEntries; ULONG ulMonitorDigitModes; ULONG ulGatherDigitsMinTimeout;// milliseconds ULONG ulGatherDigitsMaxTimeout;// milliseconds ULONG ulDevCapFlags; // Misc. capabilities ULONG ulMaxNumActiveCalls; // (This * ulMinRate) = total bandwidth (which may equal ulMaxRate) ULONG ulAnswerMode; // Effect of answering a new call when an // existing call is non-idle // // User-User info sizes allowed to accompany each operation // ULONG ulUUIAcceptSize; // bytes ULONG ulUUIAnswerSize; // bytes ULONG ulUUIMakeCallSize; // bytes ULONG ulUUIDropSize; // bytes ULONG ulUUISendUserUserInfoSize; // bytes ULONG ulUUICallInfoSize; // bytes } NDIS_CO_DEVICE_PROFILE, *PNDIS_CO_DEVICE_PROFILE; // // Structures for TCP IPSec. // typedef ULONG IPAddr, IPMask; typedef ULONG SPI_TYPE; typedef enum _OFFLOAD_OPERATION_E { AUTHENTICATE = 1, ENCRYPT } OFFLOAD_OPERATION_E; typedef struct _OFFLOAD_ALGO_INFO { ULONG algoIdentifier; ULONG algoKeylen; ULONG algoRounds; } OFFLOAD_ALGO_INFO, *POFFLOAD_ALGO_INFO; typedef enum _OFFLOAD_CONF_ALGO { OFFLOAD_IPSEC_CONF_NONE, OFFLOAD_IPSEC_CONF_DES, OFFLOAD_IPSEC_CONF_RESERVED, OFFLOAD_IPSEC_CONF_3_DES, OFFLOAD_IPSEC_CONF_MAX } OFFLOAD_CONF_ALGO; typedef enum _OFFLOAD_INTEGRITY_ALGO { OFFLOAD_IPSEC_INTEGRITY_NONE, OFFLOAD_IPSEC_INTEGRITY_MD5, OFFLOAD_IPSEC_INTEGRITY_SHA, OFFLOAD_IPSEC_INTEGRITY_MAX } OFFLOAD_INTEGRITY_ALGO; typedef struct _OFFLOAD_SECURITY_ASSOCIATION { OFFLOAD_OPERATION_E Operation; SPI_TYPE SPI; OFFLOAD_ALGO_INFO IntegrityAlgo; OFFLOAD_ALGO_INFO ConfAlgo; OFFLOAD_ALGO_INFO Reserved; } OFFLOAD_SECURITY_ASSOCIATION, *POFFLOAD_SECURITY_ASSOCIATION; #define OFFLOAD_MAX_SAS 3 #define OFFLOAD_INBOUND_SA 0x0001 #define OFFLOAD_OUTBOUND_SA 0x0002 typedef struct _OFFLOAD_IPSEC_ADD_SA { IPAddr SrcAddr; IPMask SrcMask; IPAddr DestAddr; IPMask DestMask; ULONG Protocol; USHORT SrcPort; USHORT DestPort; IPAddr SrcTunnelAddr; IPAddr DestTunnelAddr; USHORT Flags; SHORT NumSAs; OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS]; HANDLE OffloadHandle; ULONG KeyLen; UCHAR KeyMat[1]; } OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA; typedef struct _OFFLOAD_IPSEC_DELETE_SA { HANDLE OffloadHandle; } OFFLOAD_IPSEC_DELETE_SA, *POFFLOAD_IPSEC_DELETE_SA; // // Medium the Ndis Driver is running on (OID_GEN_MEDIA_SUPPORTED/ OID_GEN_MEDIA_IN_USE). // typedef enum _NDIS_MEDIUM { NdisMedium802_3, NdisMedium802_5, NdisMediumFddi, NdisMediumWan, NdisMediumLocalTalk, NdisMediumDix, // defined for convenience, not a real medium NdisMediumArcnetRaw, NdisMediumArcnet878_2, NdisMediumAtm, NdisMediumWirelessWan, NdisMediumIrda, NdisMediumBpc, NdisMediumCoWan, NdisMedium1394, NdisMediumMax // Not a real medium, defined as an upper-bound } NDIS_MEDIUM, *PNDIS_MEDIUM; // // Physical Medium Type definitions. Used with OID_GEN_PHYSICAL_MEDIUM. // typedef enum _NDIS_PHYSICAL_MEDIUM { NdisPhysicalMediumReserved0, NdisPhysicalMediumWirelessLan, NdisPhysicalMediumCableModem, NdisPhysicalMediumPhoneLine, NdisPhysicalMediumPowerLine, NdisPhysicalMediumDSL, // includes ADSL and UADSL (G.Lite) NdisPhysicalMediumMax // Not a real physical type, defined as an upper-bound } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM; // // Protocol types supported by ndis. These values need to be consistent with ADDRESS_TYPE_XXX defined in TDI.H // #define NDIS_PROTOCOL_ID_DEFAULT 0x00 #define NDIS_PROTOCOL_ID_TCP_IP 0x02 #define NDIS_PROTOCOL_ID_IPX 0x06 #define NDIS_PROTOCOL_ID_NBF 0x07 #define NDIS_PROTOCOL_ID_MAX 0x0F #define NDIS_PROTOCOL_ID_MASK 0x0F // // The following is used with OID_GEN_TRANSPORT_HEADER_OFFSET to indicate the length of the layer-2 header // for packets sent by a particular protocol. // typedef struct _TRANSPORT_HEADER_OFFSET { USHORT ProtocolType; // The protocol that is sending this OID (NDIS_PROTOCOL_ID_XXX above) USHORT HeaderOffset; // The header offset } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET; // // The structures below need to be consistent with TRANSPORT_ADDRESS structures in TDI.H // typedef struct _NETWORK_ADDRESS { USHORT AddressLength; // length in bytes of Address[] in this USHORT AddressType; // type of this address (NDIS_PROTOCOL_ID_XXX above) UCHAR Address[1]; // actually AddressLength bytes long } NETWORK_ADDRESS, *PNETWORK_ADDRESS; // // The following is used with OID_GEN_NETWORK_LAYER_ADDRESSES to set network layer addresses on an interface // typedef struct _NETWORK_ADDRESS_LIST { LONG AddressCount; // number of addresses following USHORT AddressType; // type of this address (NDIS_PROTOCOL_ID_XXX above) NETWORK_ADDRESS Address[1]; // actually AddressCount elements long } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST; // // IP address - This must remain consistent with TDI_ADDRESS_IP in tdi.h // typedef struct _NETWORK_ADDRESS_IP { USHORT sin_port; ULONG in_addr; UCHAR sin_zero[8]; } NETWORK_ADDRESS_IP, *PNETWORK_ADDRESS_IP; #define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP) // // IPX address - This must remain consistent with TDI_ADDRESS_IPX in tdi.h. // typedef struct _NETWORK_ADDRESS_IPX { ULONG NetworkAddress; UCHAR NodeAddress[6]; USHORT Socket; } NETWORK_ADDRESS_IPX, *PNETWORK_ADDRESS_IPX; #define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX) // // Hardware status codes (OID_GEN_HARDWARE_STATUS). // typedef enum _NDIS_HARDWARE_STATUS { NdisHardwareStatusReady, NdisHardwareStatusInitializing, NdisHardwareStatusReset, NdisHardwareStatusClosing, NdisHardwareStatusNotReady } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS; // // this is the type passed in the OID_GEN_GET_TIME_CAPS request // typedef struct _GEN_GET_TIME_CAPS { ULONG Flags; // Bits defined below ULONG ClockPrecision; } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS; #define READABLE_LOCAL_CLOCK 0x00000001 #define CLOCK_NETWORK_DERIVED 0x00000002 #define CLOCK_PRECISION 0x00000004 #define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008 #define TIMED_SEND_CAPABLE 0x00000010 #define TIME_STAMP_CAPABLE 0x00000020 // // this is the type passed in the OID_GEN_GET_NETCARD_TIME request // typedef struct _GEN_GET_NETCARD_TIME { ULONGLONG ReadTime; } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME; // // NDIS PnP routines and definitions. // typedef struct _NDIS_PM_PACKET_PATTERN { ULONG Priority; // Importance of the given pattern. ULONG Reserved; // Context information for transports. ULONG MaskSize; // Size in bytes of the pattern mask. ULONG PatternOffset; // Offset from beginning of this // structure to the pattern bytes. ULONG PatternSize; // Size in bytes of the pattern. ULONG PatternFlags; // Flags (TBD). } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN; // // The following structure defines the device power states. // typedef enum _NDIS_DEVICE_POWER_STATE { NdisDeviceStateUnspecified = 0, NdisDeviceStateD0, NdisDeviceStateD1, NdisDeviceStateD2, NdisDeviceStateD3, NdisDeviceStateMaximum } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE; // // The following structure defines the wake-up capabilities of the device. // typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES { NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp; NDIS_DEVICE_POWER_STATE MinPatternWakeUp; NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp; } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES; // // the following flags define the -enabled- wake-up capabilities of the device // passed in the Flags field of NDIS_PNP_CAPABILITIES structure // #define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001 // // This structure defines general PnP capabilities of the miniport driver. // typedef struct _NDIS_PNP_CAPABILITIES { ULONG Flags; NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities; } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES; // // Defines the attachment types for FDDI (OID_FDDI_ATTACHMENT_TYPE). // typedef enum _NDIS_FDDI_ATTACHMENT_TYPE { NdisFddiTypeIsolated = 1, NdisFddiTypeLocalA, NdisFddiTypeLocalB, NdisFddiTypeLocalAB, NdisFddiTypeLocalS, NdisFddiTypeWrapA, NdisFddiTypeWrapB, NdisFddiTypeWrapAB, NdisFddiTypeWrapS, NdisFddiTypeCWrapA, NdisFddiTypeCWrapB, NdisFddiTypeCWrapS, NdisFddiTypeThrough } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE; // // Defines the ring management states for FDDI (OID_FDDI_RING_MGT_STATE). // typedef enum _NDIS_FDDI_RING_MGT_STATE { NdisFddiRingIsolated = 1, NdisFddiRingNonOperational, NdisFddiRingOperational, NdisFddiRingDetect, NdisFddiRingNonOperationalDup, NdisFddiRingOperationalDup, NdisFddiRingDirected, NdisFddiRingTrace } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE; // // Defines the Lconnection state for FDDI (OID_FDDI_LCONNECTION_STATE). // typedef enum _NDIS_FDDI_LCONNECTION_STATE { NdisFddiStateOff = 1, NdisFddiStateBreak, NdisFddiStateTrace, NdisFddiStateConnect, NdisFddiStateNext, NdisFddiStateSignal, NdisFddiStateJoin, NdisFddiStateVerify, NdisFddiStateActive, NdisFddiStateMaintenance } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE; // // Defines the medium subtypes for WAN medium (OID_WAN_MEDIUM_SUBTYPE). // Sub-medium used only by connection-oriented WAN devices // i.e. NdisMediumWan, NdisMediumCoWan. // typedef enum _NDIS_WAN_MEDIUM_SUBTYPE { NdisWanMediumHub, NdisWanMediumX_25, NdisWanMediumIsdn, NdisWanMediumSerial, NdisWanMediumFrameRelay, NdisWanMediumAtm, NdisWanMediumSonet, NdisWanMediumSW56K, NdisWanMediumPPTP, NdisWanMediumL2TP, NdisWanMediumIrda, NdisWanMediumParallel } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE; // // Defines the header format for WAN medium (OID_WAN_HEADER_FORMAT). // typedef enum _NDIS_WAN_HEADER_FORMAT { NdisWanHeaderNative, // src/dest based on subtype, followed by NLPID NdisWanHeaderEthernet // emulation of ethernet header } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT; // // Defines the line quality on a WAN line (OID_WAN_QUALITY_OF_SERVICE). // typedef enum _NDIS_WAN_QUALITY { NdisWanRaw, NdisWanErrorControl, NdisWanReliable } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY; // // Defines a protocol's WAN specific capabilities (OID_WAN_PROTOCOL_CAPS). // typedef struct _NDIS_WAN_PROTOCOL_CAPS { IN ULONG Flags; IN ULONG Reserved; } NDIS_WAN_PROTOCOL_CAPS, *PNDIS_WAN_PROTOCOL_CAPS; // // Flags used in NDIS_WAN_PROTOCOL_CAPS // #define WAN_PROTOCOL_KEEPS_STATS 0x00000001 // // Defines the state of a token-ring adapter (OID_802_5_CURRENT_RING_STATE). // typedef enum _NDIS_802_5_RING_STATE { NdisRingStateOpened = 1, NdisRingStateClosed, NdisRingStateOpening, NdisRingStateClosing, NdisRingStateOpenFailure, NdisRingStateRingFailure } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE; // // Defines the state of the LAN media // typedef enum _NDIS_MEDIA_STATE { NdisMediaStateConnected, NdisMediaStateDisconnected } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE; // // The following is set on a per-packet basis as OOB data with NdisClass802_3Priority // typedef ULONG Priority_802_3; // 0-7 priority levels // // The following structure is used to query OID_GEN_CO_LINK_SPEED and // OID_GEN_CO_MINIMUM_LINK_SPEED. The first OID will return the current // link speed of the adapter. The second will return the minimum link speed // the adapter is capable of. // typedef struct _NDIS_CO_LINK_SPEED { ULONG Outbound; ULONG Inbound; } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED; #ifndef _NDIS_ typedef int NDIS_STATUS, *PNDIS_STATUS; #endif // // Structure to be used for OID_GEN_SUPPORTED_GUIDS. // This structure describes an OID to GUID mapping. // Or a Status to GUID mapping. // When ndis receives a request for a give GUID it will // query the miniport with the supplied OID. // typedef struct _NDIS_GUID { GUID Guid; union { NDIS_OID Oid; NDIS_STATUS Status; }; ULONG Size; // Size of the data element. If the GUID // represents an array then this is the // size of an element in the array. // This is -1 for strings. ULONG Flags; } NDIS_GUID, *PNDIS_GUID; #define fNDIS_GUID_TO_OID 0x00000001 #define fNDIS_GUID_TO_STATUS 0x00000002 #define fNDIS_GUID_ANSI_STRING 0x00000004 #define fNDIS_GUID_UNICODE_STRING 0x00000008 #define fNDIS_GUID_ARRAY 0x00000010 // // Ndis Packet Filter Bits (OID_GEN_CURRENT_PACKET_FILTER). // #define NDIS_PACKET_TYPE_DIRECTED 0x00000001 #define NDIS_PACKET_TYPE_MULTICAST 0x00000002 #define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004 #define NDIS_PACKET_TYPE_BROADCAST 0x00000008 #define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010 #define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020 #define NDIS_PACKET_TYPE_SMT 0x00000040 #define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080 #define NDIS_PACKET_TYPE_GROUP 0x00001000 #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000 #define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000 #define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000 // // Ndis Token-Ring Ring Status Codes (OID_802_5_CURRENT_RING_STATUS). // #define NDIS_RING_SIGNAL_LOSS 0x00008000 #define NDIS_RING_HARD_ERROR 0x00004000 #define NDIS_RING_SOFT_ERROR 0x00002000 #define NDIS_RING_TRANSMIT_BEACON 0x00001000 #define NDIS_RING_LOBE_WIRE_FAULT 0x00000800 #define NDIS_RING_AUTO_REMOVAL_ERROR 0x00000400 #define NDIS_RING_REMOVE_RECEIVED 0x00000200 #define NDIS_RING_COUNTER_OVERFLOW 0x00000100 #define NDIS_RING_SINGLE_STATION 0x00000080 #define NDIS_RING_RING_RECOVERY 0x00000040 // // Ndis protocol option bits (OID_GEN_PROTOCOL_OPTIONS). // #define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001 #define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002 #define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004 // // Ndis MAC option bits (OID_GEN_MAC_OPTIONS). // #define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001 #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 #define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008 #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010 #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020 #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040 #define NDIS_MAC_OPTION_RESERVED 0x80000000 // // NDIS media capabilities bits (OID_GEN_MEDIA_CAPABILITIES). // #define NDIS_MEDIA_CAP_TRANSMIT 0x00000001 // Supports sending data #define NDIS_MEDIA_CAP_RECEIVE 0x00000002 // Supports receiving data // // NDIS MAC option bits for OID_GEN_CO_MAC_OPTIONS. // #define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001 #ifdef IRDA // // The following is set on a per-packet basis as OOB data with NdisClassIrdaPacketInfo // This is the per-packet info specified on a per-packet basis // typedef struct _NDIS_IRDA_PACKET_INFO { ULONG ExtraBOFs; ULONG MinTurnAroundTime; } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO; #endif #ifdef WIRELESS_WAN // // Wireless WAN structure definitions // // // currently defined Wireless network subtypes // typedef enum _NDIS_WW_NETWORK_TYPE { NdisWWGeneric, NdisWWMobitex, NdisWWPinpoint, NdisWWCDPD, NdisWWArdis, NdisWWDataTAC, NdisWWMetricom, NdisWWGSM, NdisWWCDMA, NdisWWTDMA, NdisWWAMPS, NdisWWInmarsat, NdisWWpACT, NdisWWFlex, NdisWWIDEN } NDIS_WW_NETWORK_TYPE; // // currently defined header formats // typedef enum _NDIS_WW_HEADER_FORMAT { NdisWWDIXEthernetFrames, NdisWWMPAKFrames, NdisWWRDLAPFrames, NdisWWMDC4800Frames, NdisWWNCLFrames } NDIS_WW_HEADER_FORMAT; // // currently defined encryption types // typedef enum _NDIS_WW_ENCRYPTION_TYPE { NdisWWUnknownEncryption = -1, NdisWWNoEncryption, NdisWWDefaultEncryption, NdisWWDESEncryption, NdisWWRC2Encryption, NdisWWRC4Encryption, NdisWWRC5Encryption } NDIS_WW_ENCRYPTION_TYPE, *PNDIS_WW_ENCRYPTION_TYPE; typedef enum _WW_ADDRESS_FORMAT { WW_IEEE_ADDRESS = 0, WW_MOBITEX_MAN_ADDRESS, WW_DATATAC_RDLAP_ADDRESS, WW_DATATAC_MDC4800_ADDRESS, WW_DATATAC_RESERVED, WW_IPv4_ADDRESS, WW_IPv6_ADDRESS, WW_PROPRIETARY_ADDRESS, } WW_ADDRESS_FORMAT; typedef enum _WW_GEN_SUM_EXCEPTION { SIM_STATUS_OK = 0, SIM_STATUS_ERROR, SIM_STATUS_MISSING, SIM_STATUS_NO_RESPONSE, SIM_STATUS_REMOVED, SIM_STATUS_CRYPT_ERROR, SIM_STATUS_AUTH_ERROR, SIM_STATUS_NEED_PIN, SIM_STATUS_NEED_PUK, SIM_STATUS_WRONG, } WW_GEN_SIM_EXCEPTION; // // OID_WW_GEN_INDICATION_REQUEST // typedef struct _NDIS_WW_INDICATION_REQUEST { NDIS_OID Oid; // IN ULONG uIndicationFlag; // IN ULONG uApplicationToken; // IN OUT HANDLE hIndicationHandle; // IN OUT INT iPollingInterval; // IN OUT NDIS_VAR_DATA_DESC InitialValue; // IN OUT NDIS_VAR_DATA_DESC OIDIndicationValue; // OUT - only valid after indication NDIS_VAR_DATA_DESC TriggerValue; // IN } NDIS_WW_INDICATION_REQUEST, *PNDIS_WW_INDICATION_REQUEST; #define OID_INDICATION_REQUEST_ENABLE 0x0000 #define OID_INDICATION_REQUEST_CANCEL 0x0001 // // OID_WW_GEN_DEVICE_INFO // typedef struct _WW_DEVICE_INFO { NDIS_VAR_DATA_DESC Manufacturer; NDIS_VAR_DATA_DESC ModelNum; NDIS_VAR_DATA_DESC SWVersionNum; NDIS_VAR_DATA_DESC SerialNum; } WW_DEVICE_INFO, *PWW_DEVICE_INFO; // // OID_WW_GEN_OPERATION_MODE // typedef INT WW_OPERATION_MODE; // 0 = Normal mode // 1 = Power saving mode // -1 = mode unknown // // OID_WW_GEN_LOCK_STATUS // typedef INT WW_LOCK_STATUS; // 0 = unlocked // 1 = locked // -1 = unknown lock status // // OID_WW_GEN_DISABLE_TRANSMITTER // typedef INT WW_DISABLE_TRANSMITTER; // 0 = transmitter enabled // 1 = transmitter disabled // -1 = unknown value // // OID_WW_GEN_NETWORK_ID // typedef NDIS_VAR_DATA_DESC WW_NETWORK_ID; // // OID_WW_GEN_PERMANENT_ADDRESS // typedef NDIS_VAR_DATA_DESC WW_PERMANENT_ADDRESS; // // OID_WW_GEN_CURRENT_ADDRESS // typedef struct _WW_CURRENT_ADDRESS { NDIS_WW_HEADER_FORMAT Format; NDIS_VAR_DATA_DESC Address; } WW_CURRENT_ADDRESS, *PWW_CURRENT_ADDRESS; // // OID_WW_GEN_SUSPEND_DRIVER // typedef BOOLEAN WW_SUSPEND_DRIVER; // 0 = driver operational // 1 = driver suspended // // OID_WW_GEN_BASESTATION_ID // typedef NDIS_VAR_DATA_DESC WW_BASESTATION_ID; // // OID_WW_GEN_CHANNEL_ID // typedef NDIS_VAR_DATA_DESC WW_CHANNEL_ID; // // OID_WW_GEN_ENCRYPTION_STATE // typedef BOOLEAN WW_ENCRYPTION_STATE; // 0 = if encryption is disabled // 1 = if encryption is enabled // // OID_WW_GEN_CHANNEL_QUALITY // typedef INT WW_CHANNEL_QUALITY; // 0 = Not in network contact, // 1-100 = Quality of Channel (100 is highest quality). // -1 = channel quality is unknown // // OID_WW_GEN_REGISTRATION_STATUS // typedef INT WW_REGISTRATION_STATUS; // 0 = Registration denied // 1 = Registration pending // 2 = Registered // -1 = unknown registration status // // OID_WW_GEN_RADIO_LINK_SPEED // typedef ULONG WW_RADIO_LINK_SPEED; // Bits per second. // // OID_WW_GEN_LATENCY // typedef ULONG WW_LATENCY; // milliseconds // // OID_WW_GEN_BATTERY_LEVEL // typedef INT WW_BATTERY_LEVEL; // 0-100 = battery level in percentage // (100=fully charged) // -1 = unknown battery level. // // OID_WW_GEN_EXTERNAL_POWER // typedef INT WW_EXTERNAL_POWER; // 0 = no external power connected // 1 = external power connected // -1 = unknown // // Ping Address structure // typedef struct _WW_PING_ADDRESS { WW_ADDRESS_FORMAT Format; // IN NDIS_VAR_DATA_DESC TargetAddress; // IN UINT uTime; // OUT in milleseconds } WW_PING_ADDRESS; // // RSSI structure // typedef struct _WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR { INT iDecibels; // value in DB INT iFactor; // power of 10 } WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR; // // SIM status structure // typedef struct _WW_SIM_STATUS { BOOLEAN bHasSIM; // TRUE = SIM required BOOLEAN bBlocked; // TRUE = SIM PIN access blocked BOOLEAN bLocked; // TRUE = PIN need to access device BOOLEAN bInitialized; // TRUE = SIM initialized UINT uCountdown; // = remaining number of attempt to // enter correct PIN } WW_SIM_STATUS; // // enable SIM PIN structure // typedef struct _WW_ENABLE_SIM_PIN { BOOLEAN bEnabled; // TRUE = security feature of SIM enabled NDIS_VAR_DATA_DESC CurrentPIN; // describes buffer containing PIN value } WW_ENABLE_SIM_PIN; // // SIM PIN structure // typedef struct _WW_CHANGE_SIM_PIN { NDIS_VAR_DATA_DESC OldPIN; // describes buffer containing OLD PIN NDIS_VAR_DATA_DESC NewPIN; // describes buffer containing new PIN } WW_CHANGE_SIM_PIN; // // new change SIM PUK structure // typedef NDIS_VAR_DATA_DESC WW_ENABLE_SIM_PUK; // // OID_WW_MET_FUNCTION // typedef NDIS_VAR_DATA_DESC WW_MET_FUNCTION; // // OID_WW_TAC_COMPRESSION // typedef BOOLEAN WW_TAC_COMPRESSION; // Determines whether or not network level compression // is being used. // // OID_WW_TAC_SET_CONFIG // // The DataTAC OID that referenced this object has been superceeded. The // definition is still included for historical purposes only and should not // be used // typedef struct _WW_TAC_SETCONFIG { NDIS_VAR_DATA_DESC RCV_MODE; // Select confirmed/unconfirmed // receive mode NDIS_VAR_DATA_DESC TX_CONTROL; // Enable or Disable transmitter NDIS_VAR_DATA_DESC RX_CONTROL; // Enable or disable radio in // the modem NDIS_VAR_DATA_DESC FLOW_CONTROL; // Set flow control between DTE // and DCE NDIS_VAR_DATA_DESC RESET_CNF; // Reset configuration to // default NDIS_VAR_DATA_DESC READ_CNF; // Read the current // configuration } WW_TAC_SETCONFIG, *PWW_TAC_SETCONFIG; // // OID_WW_TAC_GET_STATUS // // The DataTAC OID that referenced this object has been superceeded. The // definition is still included for historical purposes only and should not // be used // typedef struct _WW_TAC_GETSTATUS { BOOLEAN Action; // Set = Execute command. NDIS_VAR_DATA_DESC Command; NDIS_VAR_DATA_DESC Option; NDIS_VAR_DATA_DESC Response; // The response to the requested command // - max. length of string is 256 octets. } WW_TAC_GETSTATUS, *PWW_TAC_GETSTATUS; // // OID_WW_TAC_USER_HEADER // typedef NDIS_VAR_DATA_DESC WW_TAC_USERHEADER; // This will hold the user header - Max. 64 octets. // August 25, 1998 @14:16 EDT by Emil Sturniolo - WRQ // added new DataTAC get response structure typedef struct _WW_TAC_GET_RESPONSE { UINT SDUTag; // previousl assigned token NDIS_VAR_DATA_DESC Response; // response - max 2048 octets } WW_TAC_GET_RESPONSE; // // DataTAC disable receiver structure // typedef INT WW_TAC_DISABLE_RECEIVER; // 0 = receiver enabled // 1 = receiver disabled // -1 = state of recevier unknown // // DataTAC antenna mode structure // typedef INT WW_TAC_ANTENNA_MODE; // 0 = Automatic Antenna selection // 1 = Always use primary antenna // 2 = Always use secondary antenna // -1 = Antenna algorithm unknown // // DataTAC get response structure // typedef INT WW_TAC_FLUSH_DATA; // 1 = flush buffered data destine to net // 2 = flush buffered data received from net // 3 = flush all buffered data // // DataTAC shutdown device structure // typedef INT WW_TAC_SHUTDOWN_DEVICE; // 0 = device enabled // 1 = device disabled // -1 = state of device unknown // // DataTAC transmitter keyed structure // typedef BOOLEAN WW_TAC_TRANSMITTER_KEYED; // // added new DataTAC system table structure // typedef struct _WW_TAC_SYSTEM_TABLE { UINT SystemCount; UCHAR ContryTable[32]; UCHAR PrefixTable[32]; UCHAR IDTable[32]; } WW_TAC_SYSTEM_TABLE; // // added new DataTAC channel table structure // typedef struct _WW_TAC_CHANNEL_TABLE { UINT ChannelCount; UCHAR ChannelTable[64]; UCHAR AttrTable[64]; } WW_TAC_CHANNEL_TABLE; // // added new DataTAC statistics structure // typedef NDIS_VAR_DATA_DESC WW_TAC_STATISTICS; // // OID_WW_ARD_SNDCP // // The ARDIS OIDs that referenced these object have been deprecated and merged // with the new DataTAC objects. Their definition are still included for // historical purposes only and should not be used. // typedef struct _WW_ARD_SNDCP { NDIS_VAR_DATA_DESC Version; // The version of SNDCP protocol supported. INT BlockSize; // The block size used for SNDCP INT Window; // The window size used in SNDCP } WW_ARD_SNDCP, *PWW_ARD_SNDCP; // // OID_WW_ARD_TMLY_MSG // typedef BOOLEAN WW_ARD_CHANNEL_STATUS; // The current status of the inbound RF Channel. // // OID_WW_ARD_DATAGRAM // typedef struct _WW_ARD_DATAGRAM { BOOLEAN LoadLevel; // Byte that contains the load level info. INT SessionTime; // Datagram session time remaining. NDIS_VAR_DATA_DESC HostAddr; // Host address. NDIS_VAR_DATA_DESC THostAddr; // Test host address. } WW_ARD_DATAGRAM, *PWW_ARD_DATAGRAM; // // OID_WW_CDPD_SPNI // typedef struct _WW_CDPD_SPNI { ULONG SPNI[10]; //10 16-bit service provider network IDs INT OperatingMode; // 0 = ignore SPNI, // 1 = require SPNI from list, // 2 = prefer SPNI from list. // 3 = exclude SPNI from list. } WW_CDPD_SPNI, *PWW_CDPD_SPNI; // // OID_WW_CDPD_WASI // typedef struct _WW_CDPD_WIDE_AREA_SERVICE_ID { ULONG WASI[10]; //10 16-bit wide area service IDs INT OperatingMode; // 0 = ignore WASI, // 1 = Require WASI from list, // 2 = prefer WASI from list // 3 = exclude WASI from list. } WW_CDPD_WIDE_AREA_SERVICE_ID, *PWW_CDPD_WIDE_AREA_SERVICE_ID; // // OID_WW_CDPD_AREA_COLOR // typedef INT WW_CDPD_AREA_COLOR; // // OID_WW_CDPD_TX_POWER_LEVEL // typedef ULONG WW_CDPD_TX_POWER_LEVEL; // // OID_WW_CDPD_EID // typedef NDIS_VAR_DATA_DESC WW_CDPD_EID; // // OID_WW_CDPD_HEADER_COMPRESSION // typedef INT WW_CDPD_HEADER_COMPRESSION; // 0 = no header compression, // 1 = always compress headers, // 2 = compress headers if MD-IS does // -1 = unknown // // OID_WW_CDPD_DATA_COMPRESSION // typedef INT WW_CDPD_DATA_COMPRESSION; // 0 = no data compression, // 1 = data compression enabled // -1 = unknown // // OID_WW_CDPD_CHANNEL_SELECT // typedef struct _WW_CDPD_CHANNEL_SELECT { ULONG ChannelID; // channel number ULONG fixedDuration; // duration in seconds } WW_CDPD_CHANNEL_SELECT, *PWW_CDPD_CHANNEL_SELECT; // // OID_WW_CDPD_CHANNEL_STATE // typedef enum _WW_CDPD_CHANNEL_STATE { CDPDChannelNotAvail, CDPDChannelScanning, CDPDChannelInitAcquired, CDPDChannelAcquired, CDPDChannelSleeping, CDPDChannelWaking, CDPDChannelCSDialing, CDPDChannelCSRedial, CDPDChannelCSAnswering, CDPDChannelCSConnected, CDPDChannelCSSuspended } WW_CDPD_CHANNEL_STATE, *PWW_CDPD_CHANNEL_STATE; // // OID_WW_CDPD_NEI // typedef enum _WW_CDPD_NEI_FORMAT { CDPDNeiIPv4, CDPDNeiCLNP, CDPDNeiIPv6 } WW_CDPD_NEI_FORMAT, *PWW_CDPD_NEI_FORMAT; typedef enum _WW_CDPD_NEI_TYPE { CDPDNeiIndividual, CDPDNeiMulticast, CDPDNeiBroadcast } WW_CDPD_NEI_TYPE; typedef struct _WW_CDPD_NEI { ULONG uNeiIndex; WW_CDPD_NEI_FORMAT NeiFormat; WW_CDPD_NEI_TYPE NeiType; WORD NeiGmid; // group member identifier, only // meaningful if NeiType == // CDPDNeiMulticast NDIS_VAR_DATA_DESC NeiAddress; } WW_CDPD_NEI; // // OID_WW_CDPD_NEI_STATE // typedef enum _WW_CDPD_NEI_STATE { CDPDUnknown, CDPDRegistered, CDPDDeregistered } WW_CDPD_NEI_STATE, *PWW_CDPD_NEI_STATE; typedef enum _WW_CDPD_NEI_SUB_STATE { CDPDPending, // Registration pending CDPDNoReason, // Registration denied - no reason given CDPDMDISNotCapable, // Registration denied - MD-IS not capable of // handling M-ES at this time CDPDNEINotAuthorized, // Registration denied - NEI is not authorized to // use this subnetwork CDPDInsufficientAuth, // Registration denied - M-ES gave insufficient // authentication credentials CDPDUnsupportedAuth, // Registration denied - M-ES gave unsupported // authentication credentials CDPDUsageExceeded, // Registration denied - NEI has exceeded usage // limitations CDPDDeniedThisNetwork // Registration denied on this network, service // may be obtained on alternate Service Provider // network } WW_CDPD_NEI_SUB_STATE; typedef struct _WW_CDPD_NEI_REG_STATE { ULONG uNeiIndex; WW_CDPD_NEI_STATE NeiState; WW_CDPD_NEI_SUB_STATE NeiSubState; } WW_CDPD_NEI_REG_STATE, *PWW_CDPD_NEI_REG_STATE; // // OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER // typedef struct _WW_CDPD_SERVICE_PROVIDER_ID { ULONG SPI[10]; //10 16-bit service provider IDs INT OperatingMode; // 0 = ignore SPI, // 1 = require SPI from list, // 2 = prefer SPI from list. // 3 = SPI from list is excluded } WW_CDPD_SERVICE_PROVIDER_ID, *PWW_CDPD_SERVICE_PROVIDER_ID; // // OID_WW_CDPD_SLEEP_MODE // typedef INT WW_CDPD_SLEEP_MODE; // // OID_WW_CDPD_TEI // typedef ULONG WW_CDPD_TEI; // // OID_WW_CDPD_CIRCUIT_SWITCHED // // The CDPD OID that referenced this object has been deprecated and superceeded // by new discrete CDPD objects. The definition is still included for // historical purposes only and should not be used. // typedef struct _WW_CDPD_CIRCUIT_SWITCHED { INT service_preference; // -1 = unknown, // 0 = always use packet switched CDPD, // 1 = always use CS CDPD via AMPS, // 2 = always use CS CDPD via PSTN, // 3 = use circuit switched via AMPS only // when packet switched is not available. // 4 = use packet switched only when circuit // switched via AMPS is not available. // 5 = device manuf. defined service // preference. // 6 = device manuf. defined service // preference. INT service_status; // -1 = unknown, // 0 = packet switched CDPD, // 1 = circuit switched CDPD via AMPS, // 2 = circuit switched CDPD via PSTN. INT connect_rate; // CS connection bit rate (bits per second). // 0 = no active connection, // -1 = unknown // Dial code last used to dial. NDIS_VAR_DATA_DESC dial_code[20]; ULONG sid; // Current AMPS system ID INT a_b_side_selection; // -1 = unknown, // 0 = no AMPS service // 1 = AMPS "A" side channels selected // 2 = AMPS "B" side channels selected INT AMPS_channel; // -1= unknown // 0 = no AMPS service. // 1-1023 = AMPS channel number in use ULONG action; // 0 = no action // 1 = suspend (hangup) // 2 = dial // Default dial code for CS CDPD service // encoded as specified in the CS CDPD // implementor guidelines. NDIS_VAR_DATA_DESC default_dial[20]; // Number for the CS CDPD network to call // back the mobile, encoded as specified in // the CS CDPD implementor guidelines. NDIS_VAR_DATA_DESC call_back[20]; ULONG sid_list[10]; // List of 10 16-bit preferred AMPS // system IDs for CS CDPD. ULONG inactivity_timer; // Wait time after last data before dropping // call. // 0-65535 = inactivity time limit (seconds). ULONG receive_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG conn_resp_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG reconn_resp_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG disconn_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG NEI_reg_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG reconn_retry_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG link_reset_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG link_reset_ack_timer; // secs. per CS-CDPD Implementor Guidelines. ULONG n401_retry_limit; // per CS-CDPD Implementor Guidelines. ULONG n402_retry_limit; // per CS-CDPD Implementor Guidelines. ULONG n404_retry_limit; // per CS-CDPD Implementor Guidelines. ULONG n405_retry_limit; // per CS-CDPD Implementor Guidelines. } WW_CDPD_CIRCUIT_SWITCHED, *WW_PCDPD_CIRCUIT_SWITCHED; typedef ULONG WW_CDPD_RSSI; // // cs-cdpd service preference structure // typedef INT WW_CDPD_CS_SERVICE_PREFERENCE; // 0 = use packet switched CDPD only // 1 = use CS-CDPD via AMPS only // 2 = use CS-CDPD via PSTN only // 3 = use CS-CDPD via AMPS only // when packet switched is N/A // 4 = use packet switched CDPD only // when CS-CDPD via AMPS is N/A // 5 = Device manufacture defined // service preference // 6 = device manufacture defined // service preference // -1 = unknown // // cs-cdpd service status structure // typedef INT WW_CDPD_CS_SERVICE_STATUS; // 0 = Packet switched CDPD // 1 = CS-CDPD via AMPS // 2 = CS-CDPD via PSTN // -1 = unknown // // cs-cdpd info structure // typedef struct _WW_CDPD_CS_INFO { INT ConnectRage; // 0 = no active connection // -1 = unknown // all other values represent BPS NDIS_VAR_DATA_DESC DialCode; // describes buffer of last dial code UINT SID; // Current AMPS System ID INT ABSideSelection; // 0 = no AMPS service // 1 = AMPS "A" side channel selected // 2 = AMPS "B" side channel selected INT AMPSChannel; // 0 = no AMPS service // 1-1023 = current AMPS channel // -1 = Unknown // all other values reserved } WW_CDPD_CS_INFO; // // cs-cdpd suspend structure // typedef UINT WW_CDPD_CS_SUSPEND; // 0 = nop; 1 = hang up // // cs-cdpd default dial code structure // typedef NDIS_VAR_DATA_DESC WW_CDPD_DEFAULT_DIAL_CODE; // max 20 octets // // cs-cdpd callback structure // typedef struct _WW_CDPD_CS_CALLBACK { UINT Enabled; // 0 = disable; 1 = enable; -1 = unknown NDIS_VAR_DATA_DESC Number; // descibes buffer contianing dial code // max 20 octets } WW_CDPD_CS_CALLBACK; // // cs-cdpd system id list structure // typedef struct _WW_CDPD_CS_SID_LIST { UINT AMPSystemId[10]; } WW_CDPD_CS_SID_LIST; // // cs-cdpd configuration structure // typedef struct _WW_CDPD_CS_CONFIGURATION { UINT InactivityTimer; // in seconds UINT ReceiveTimer; // in seconds UINT ConnResTimer; // in seconds UINT ReconnRespTimer; // in seconds UINT DisconnTimer; // in seconds UINT NEIRegTimer; // in seconds UINT ReconnRetryTimer; // in seconds UINT LinkResetTimer; // in seconds UINT LinkResetAckTimer; // in seconds UINT n401RetryLimit; // per CS-CDPD Implementers guidelines UINT n402RetryLimit; // per CS-CDPD Implementers guidelines UINT n404RetryLimit; // per CS-CDPD Implementers guidelines UINT n405RetryLimit; // per CS-CDPD Implementers guidelines } WW_CDPD_CS_CONFIGURATION; // // OID_WW_PIN_LOC_AUTHORIZE // // The Pin Point OIDs that referenced the structures below have been // deprecated from the PCCA STD-201 standard. Their definitions are still // included for historical purposes only and should not be used. // typedef INT WW_PIN_AUTHORIZED; // 0 = unauthorized // 1 = authorized // -1 = unknown // // OID_WW_PIN_LAST_LOCATION // OID_WW_PIN_LOC_FIX // typedef struct _WW_PIN_LOCATION { INT Latitude; // Latitude in hundredths of a second INT Longitude; // Longitude in hundredths of a second INT Altitude; // Altitude in feet INT FixTime; // Time of the location fix, since midnight, local time (of the // current day), in tenths of a second INT NetTime; // Current local network time of the current day, since midnight, // in tenths of a second INT LocQuality; // 0-100 = location quality INT LatReg; // Latitude registration offset, in hundredths of a second INT LongReg; // Longitude registration offset, in hundredths of a second INT GMTOffset; // Offset in minutes of the local time zone from GMT } WW_PIN_LOCATION, *PWW_PIN_LOCATION; // // The following is set on a per-packet basis as OOB data with NdisClassWirelessWanMbxMailbox // typedef ULONG WW_MBX_MAILBOX_FLAG; // 1 = set mailbox flag, 0 = do not set mailbox flag // // OID_WW_MBX_SUBADDR // typedef struct _WW_MBX_PMAN { BOOLEAN ACTION; // 0 = Login PMAN, 1 = Logout PMAN ULONG MAN; UCHAR PASSWORD[8]; // Password should be null for Logout and indications. // Maximum length of password is 8 chars. } WW_MBX_PMAN, *PWW_MBX_PMAN; // // OID_WW_MBX_FLEXLIST // typedef struct _WW_MBX_FLEXLIST { INT count; // Number of MAN entries used. // -1=unknown. ULONG MAN[7]; // List of MANs. } WW_MBX_FLEXLIST; // // OID_WW_MBX_GROUPLIST // typedef struct _WW_MBX_GROUPLIST { INT count; // Number of MAN entries used. // -1=unknown. ULONG MAN[15]; // List of MANs. } WW_MBX_GROUPLIST; // // OID_WW_MBX_TRAFFIC_AREA // typedef enum _WW_MBX_TRAFFIC_AREA { unknown_traffic_area, // The driver has no information about the current traffic area. in_traffic_area, // Mobile unit has entered a subscribed traffic area. in_auth_traffic_area, // Mobile unit is outside traffic area but is authorized. unauth_traffic_area // Mobile unit is outside traffic area but is un-authorized. } WW_MBX_TRAFFIC_AREA; // // OID_WW_MBX_LIVE_DIE // typedef INT WW_MBX_LIVE_DIE; // 0 = DIE last received // 1 = LIVE last received // -1 = unknown // // OID_WW_MBX_TEMP_DEFAULTLIST // typedef struct _WW_MBX_CHANNEL_PAIR { ULONG Mobile_Tx; ULONG Mobile_Rx; } WW_MBX_CHANNEL_PAIR, *PWW_MBX_CHANNEL_PAIR; typedef struct _WW_MBX_TEMPDEFAULTLIST { ULONG Length; WW_MBX_CHANNEL_PAIR ChannelPair[1]; } WW_MBX_TEMPDEFAULTLIST, *WW_PMBX_TEMPDEFAULTLIST; #endif // WIRELESS_WAN // // // Base types that were redefined for BPC // // BPC_FILETIME is used exactly like FILETIME in Win32 // // BPC_HANDLE is opaque to everything except the Miniport // typedef struct _BPC_FILETIME { ULONG dwLowDateTime; ULONG dwHighDateTime; } BPC_FILETIME, *PBPC_FILETIME; typedef PVOID BPC_HANDLE; // // BPC Extension Globals // // #define BPC_MIN_DIMENSION 1 #define BPC_MAX_BUFFER_SIZE 64 #define BPC_MIN_BUFFER_SIZE 4 #define BPC_DEVICE_ANY ((BPC_HANDLE) 0xFFFFFFFF) // // Buffer indicate reason codes // // typedef enum _NDIS_BPC_INDICATE_REASON { bpcBufferFull = 0, bpcBufferForced, bpcBufferTimeOut, bpcBufferDiscontinuity, bpcBufferOverflow, bpcBufferStatusEvent } NDIS_BPC_INDICATE_REASON, *PNDIS_BPC_INDICATE_REASON; // // BPC Stream Types // #define BPC_STREAM_TYPE_GENERIC_MIN 0x01000000 #define BPC_STREAM_TYPE_RAW 0x01000000 #define BPC_STREAM_TYPE_MPT_128 0x01000001 #define BPC_STREAM_TYPE_MPT_128_CRC 0x01000002 #define BPC_STREAM_TYPE_IP 0x01000003 #define BPC_STREAM_TYPE_PROVIDER_MIN 0x02000000 #define BPC_STREAM_TYPE_PROVIDER_MAX 0x02ffffff #define BPC_STREAM_TYPE_ADAPTER_MIN 0x03000000 #define BPC_STREAM_TYPE_ADAPTER_MAX 0x03ffffff // // BPC Adapter Capabilities // typedef struct _NDIS_BPC_ADAPTER_CAPS { ULONG ulBPCMajorRev; ULONG ulBPCMinorRev; ULONG ulcHSDataDevices; ULONG ulbpsHSDeviceMax; ULONG ulcLSDataDevices; ULONG ulbpsLSDeviceMax; ULONG ulcTuningDevices; ULONG ulcbLargestStatus; ULONG ulVendorId; ULONG ulAdapterId; GUID guidProvider; } NDIS_BPC_ADAPTER_CAPS, *PNDIS_BPC_ADAPTER_CAPS; // // BPC Device Enumeration // typedef struct _NDIS_BPC_DEVICES { ULONG ulcDevices; BPC_HANDLE rgnhDevices[BPC_MIN_DIMENSION]; } NDIS_BPC_DEVICES, *PNDIS_BPC_DEVICES; #define CbDevices(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICES, rgnhDevices) + (cnt) * sizeof(BPC_HANDLE)) // // BPC Device Capabilities Structure // typedef struct NDIS_BPC_DEVICE_CAPS { BPC_HANDLE nhDevice; ULONG ulBPCCaps; ULONG ulbpsMax; ULONG ulcStreamTypes; ULONG rgulStreamTypes[BPC_MIN_DIMENSION]; } NDIS_BPC_DEVICE_CAPS, *PNDIS_BPC_DEVICE_CAPS; #define CbDeviceCaps(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_CAPS, rgulStreamTypes) + (cnt) * sizeof(ULONG)) // // BPC Device Capability Definitions // (ie Flags that can be set in ulBPCCaps // #define BPCCapBusMasteredData 0x01 #define BPCCapIndependentTuner 0x02 #define BPCCapExternalDataBus 0x04 #define BPCCapLowSpeedData 0x10 #define BPCCapHighSpeedData 0x20 // // BPC Device Settings Structure // typedef struct NDIS_BPC_DEVICE_SETTINGS { BPC_HANDLE nhDevice; ULONG ulBPCCaps; ULONG ulcConnections; BOOLEAN fEnabled; ULONG ulStreamType; ULONG ulcbAddressConnection; ULONG rgulAddressConnection[BPC_MIN_DIMENSION]; } NDIS_BPC_DEVICE_SETTINGS, *PNDIS_BPC_DEVICE_SETTINGS; #define CbDeviceSettings(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_SETTINGS, rgulAddressConnection) + (cnt) * sizeof(ULONG)) // // BPC Connection State Definitions // (ie Acceptable values for ulState) // #define BPC_CONNECT_STATE_UNCOMMITTED 0 #define BPC_CONNECT_STATE_QUEUED 1 #define BPC_CONNECT_STATE_ACTIVE 2 #define BPC_CONNECT_STATE_DISCONNECTING 3 // // BPC Connections Status Structure // typedef struct NDIS_BPC_CONNECTION_STATUS { BPC_HANDLE nhConnection; BPC_HANDLE nhDevice; ULONG ulConnectPriority; ULONG ulDisconnectPriority; ULONG ulbpsAverage; ULONG ulbpsBurst; ULONG ulState; BOOLEAN fEnabled; } NDIS_BPC_CONNECTION_STATUS, *PNDIS_BPC_CONNECTION_STATUS; // // BPC Address Comparison Structure // typedef struct NDIS_BPC_ADDRESS_COMPARE { BOOLEAN fEqual; ULONG ulcbFirstOffset; ULONG ulcbFirstLength; ULONG ulcbSecondOffset; ULONG ulcbSecondLength; } NDIS_BPC_ADDRESS_COMPARE, *PNDIS_BPC_ADDRESS_COMPARE; // // BPC Program Guide Types // // Currently there are no Generic BPC Program Guide types. // #define BPC_GUIDE_GENERIC_MIN 0x01000000 #define BPC_GUIDE_GENERIC_MAX 0x01ffffff #define BPC_GUIDE_PROVIDER_MIN 0x02000000 #define BPC_GUIDE_PROVIDER_MAX 0x02ffffff #define BPC_GUIDE_ADAPTER_MIN 0x03000000 #define BPC_GUIDE_ADAPTER_MAX 0x03ffffff // // BPC Program Guide Structure // typedef struct NDIS_BPC_PROGRAM_GUIDE { ULONG ulGuideType; BPC_FILETIME ftLastUpdate; ULONG ulChangeNumber; ULONG ulcbGuideSize; ULONG rgulGuideData[BPC_MIN_DIMENSION]; } NDIS_BPC_PROGRAM_GUIDE, *PNDIS_BPC_PROGRAM_GUIDE; // // BPC Extension Errors // (ie Acceptable values for ulBPCError) // typedef enum _NDIS_BPC_ERROR { bpcErrorUnknownFailure = 0xc0ff0000, bpcErrorHardwareFailure, bpcErrorProviderFailure, bpcErrorNoDataDevice, bpcErrorNoTuningDevice, bpcErrorDeviceNotCapable, bpcErrorConflictingDevice, bpcErrorConflictingCapability, bpcErrorNoBufferMemory, bpcErrorNoResources, bpcErrorAdapterClosing, bpcErrorConnectionClosing, bpcErrorTooComplex, bpcErrorProviderNotSupported, bpcErrorUnknownProviderStructure, bpcErrorAddressNotSupported, bpcErrorInvalidAddress, bpcErrorUnknownAdapterStructure } NDIS_BPC_ERROR, *PNDIS_BPC_ERROR; // // BPC Last Error Structure // typedef struct NDIS_BPC_LAST_ERROR { ULONG ulErrorContext; ULONG ulBPCError; ULONG ulAdapterError; ULONG ulAdapterContext; } NDIS_BPC_LAST_ERROR, *PNDIS_BPC_LAST_ERROR; // // BPC Buffer Pool Request/Report Structure // typedef struct NDIS_BPC_POOL { BPC_HANDLE nhConnection; ULONG ulcbPoolSize; ULONG ulcbMaxBufferSize; ULONG ulcbBufferReserved; } NDIS_BPC_POOL, *PNDIS_BPC_POOL; // // BPC Provider and Adapter Specific Structures are defined in the // BpcXXXX.H file which the Provider/Adapter Manufacturer supplies. // // // BPC Connect Structure // typedef struct NDIS_BPC_CONNECT { BPC_HANDLE nhConnection; BPC_HANDLE nhDevice; ULONG ulConnectPriority; ULONG ulDisconnectPriority; BOOLEAN fImmediate; ULONG ulcbAddress; GUID guidProvider; ULONG rgulAddress[BPC_MIN_DIMENSION]; } NDIS_BPC_CONNECT, *PNDIS_BPC_CONNECT; #define CbConnect(cnt) (FIELD_OFFSET(NDIS_BPC_CONNECT, rgulAddress) + (cnt) * sizeof(ULONG)) // // BPC Commit Connections Structure // typedef struct NDIS_BPC_COMMIT { ULONG ulcConnections; BPC_HANDLE rgnhConnections[BPC_MIN_DIMENSION]; } NDIS_BPC_COMMIT, *PNDIS_BPC_COMMIT; // // BPC Disconnect Structure // typedef struct NDIS_BPC_DISCONNECT { BPC_HANDLE nhConnection; } NDIS_BPC_DISCONNECT, *PNDIS_BPC_DISCONNECT; // // BPC Enable Connection Structure // typedef struct NDIS_BPC_CONNECTION_ENABLE { BPC_HANDLE nhConnection; BOOLEAN fEnabled; } NDIS_BPC_CONNECTION_ENABLE, *PNDIS_BPC_CONNECTION_ENABLE; // // BPC Pool Return Structure // typedef struct NDIS_BPC_POOL_RETURN { BPC_HANDLE nhConnection; } NDIS_BPC_POOL_RETURN, *PNDIS_BPC_POOL_RETURN; typedef struct NDIS_BPC_FORCE_RECEIVE { BPC_HANDLE nhConnection; ULONG ulReasonCode; } NDIS_BPC_FORCE_RECEIVE, *PNDIS_BPC_FORCE_RECEIVE; // // BPC Media Specific Information Structure // typedef struct NDIS_BPC_MEDIA_SPECIFIC_INFORMATION { BPC_HANDLE nhConnection; // The handle to the data device. ULONG ulBPCStreamType; // The stream type of the data in packet ULONG ulReasonCode; // The reason the buffer was indicated PVOID pvMiniportReserved1; ULONG ulMiniportReserved2; } NDIS_BPC_MEDIA_SPECIFIC_INFORMATION, *PNDIS_BPC_MEDIA_SPECIFIC_INFORMATION; // // BPC Status Categories // #define BPC_CATEGORY_BPC 0x01000000 #define BPC_CATEGORY_PROVIDER 0x02000000 #define BPC_CATEGORY_ADAPTER 0x03000000 // // BPC Status Types for Category BPC_CATEGORY_BPC // #define BPC_STATUS_CONNECTED 0x00000001 #define BPC_STATUS_QUEUED 0x00000002 #define BPC_STATUS_ACTIVE 0x00000003 #define BPC_STATUS_DISCONNECTED 0x00000004 #define BPC_STATUS_OVERFLOW 0x00000005 #define BPC_STATUS_DATA_STOP 0x00000006 #define BPC_STATUS_DATA_START 0x00000007 #define BPC_STATUS_DATA_ERROR 0x00000008 // // BPC Status Indication Structure // typedef struct NDIS_BPC_STATUS { ULONG ulStatusCategory; ULONG ulStatusType; ULONG ulcbStatus; ULONG rgulStatus; } NDIS_BPC_STATUS, *PNDIS_BPC_STATUS; // // BPC Connection Status Structure // // All BPC Generic Connection Status package this structure // in rgulStatus to indicate to which connection and device // the status pertains. // typedef struct NDIS_BPC_STATUS_CONNECTION { BPC_HANDLE nhConnection; BPC_HANDLE nhDevice; } NDIS_BPC_STATUS_CONNECTED, *PNDIS_BPC_STATUS_CONNECTED; #ifdef __cplusplus } #endif #pragma option pop /*P_O_Pop*/ #endif // _NTDDNDIS_