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

📄 ntddndis.h

📁 书中的主要程序文件。在打开例题的.dsw文件后,请读者在 tools菜单下的 Options 的 Directories 标签中选择 Executable files
💻 H
📖 第 1 页 / 共 5 页
字号:
	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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -