📄 ntddndis.h
字号:
#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
#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004
//
// 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;
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -