⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntddndis.h

📁 一个直接控制网卡发送ARP分组的程序
💻 H
📖 第 1 页 / 共 5 页
字号:
#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 + -