ntddndis.h

来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 2,060 行 · 第 1/4 页

H
2,060
字号

//
//	NDIS miniport capabilities bits (OID_GEN_MINIPORT_CAPABILITIES)
//
#define	NDIS_CAP_ADD_V4_TCP_CHECKSUM			0x00000001
#define	NDIS_CAP_ADD_V4_UDP_CHECKSUM			0x00000002
#define	NDIS_CAP_ADD_V4_IP_CHECKSUM				0x00000004

#define	NDIS_CAP_VERIFY_V4_TCP_CHECKSUM			0x00000008
#define	NDIS_CAP_VERIFY_V4_UDP_CHECKSUM			0x00000010
#define	NDIS_CAP_VERIFY_V4_IP_CHECKSUM			0x00000020

#define	NDIS_CAP_ADD_V6_TCP_CHECKSUM			0x00000040
#define	NDIS_CAP_ADD_V6_UDP_CHECKSUM			0x00000080
#define	NDIS_CAP_ADD_V6_IP_CHECKSUM				0x00000100

#define	NDIS_CAP_VERIFY_V6_TCP_CHECKSUM			0x00000200
#define	NDIS_CAP_VERIFY_V6_UDP_CHECKSUM			0x00000400
#define	NDIS_CAP_VERIFY_V6_IP_CHECKSUM			0x00000800

//
//	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
} NDIS_WW_NETWORK_TYPE;

//
// currently defined header formats
//
typedef enum _NDIS_WW_HEADER_FORMAT
{
	NdisWWDIXEthernetFrames,
	NdisWWMPAKFrames,
	NdisWWRDLAPFrames,
	NdisWWMDC4800Frames
} NDIS_WW_HEADER_FORMAT;

//
// currently defined encryption types
//
typedef enum _NDIS_WW_ENCRYPTION_TYPE
{
	NdisWWUnknownEncryption = -1,
	NdisWWNoEncryption,
	NdisWWDefaultEncryption
} NDIS_WW_ENCRYPTION_TYPE, *PNDIS_WW_ENCRYPTION_TYPE;

//
// 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

//
// 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
//
typedef struct _WW_TAC_SETCONFIG
{
	NDIS_VAR_DATA_DESC		RCV_MODE;
	NDIS_VAR_DATA_DESC		TX_CONTROL;
	NDIS_VAR_DATA_DESC		RX_CONTROL;
	NDIS_VAR_DATA_DESC		FLOW_CONTROL;
	NDIS_VAR_DATA_DESC		RESET_CNF;
	NDIS_VAR_DATA_DESC		READ_CNF;
} WW_TAC_SETCONFIG, *PWW_TAC_SETCONFIG;

//
// OID_WW_TAC_GET_STATUS
//
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.

//
// OID_WW_ARD_SNDCP
//
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 = exclude SPI from list.
} 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
//
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.
	

⌨️ 快捷键说明

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