ntddndis.h

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

H
2,060
字号
	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;

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

#endif // _NTDDNDIS_

⌨️ 快捷键说明

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