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 + -
显示快捷键?