📄 ndis.h
字号:
UCHAR WrapperReservedEx[sizeof(PVOID)];
} s2;
struct {
UCHAR MacReserved[4 * sizeof(PVOID)];
} s3;
} u;
ULONG_PTR Reserved[2];
UCHAR ProtocolReserved[1];
} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;
typedef enum _NDIS_CLASS_ID {
NdisClass802_3Priority,
NdisClassWirelessWanMbxMailbox,
NdisClassIrdaPacketInfo,
NdisClassAtmAALInfo
} NDIS_CLASS_ID;
typedef struct MediaSpecificInformation {
UINT NextEntryOffset;
NDIS_CLASS_ID ClassId;
UINT Size;
UCHAR ClassInformation[1];
} MEDIA_SPECIFIC_INFORMATION;
typedef struct _NDIS_PACKET_OOB_DATA {
_ANONYMOUS_UNION union {
ULONGLONG TimeToSend;
ULONGLONG TimeSent;
} DUMMYUNIONNAME;
ULONGLONG TimeReceived;
UINT HeaderSize;
UINT SizeMediaSpecificInfo;
PVOID MediaSpecificInformation;
NDIS_STATUS Status;
} NDIS_PACKET_OOB_DATA, *PNDIS_PACKET_OOB_DATA;
typedef struct _NDIS_PM_PACKET_PATTERN {
ULONG Priority;
ULONG Reserved;
ULONG MaskSize;
ULONG PatternOffset;
ULONG PatternSize;
ULONG PatternFlags;
} NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN;
/* Request types used by NdisRequest */
typedef enum _NDIS_REQUEST_TYPE {
NdisRequestQueryInformation,
NdisRequestSetInformation,
NdisRequestQueryStatistics,
NdisRequestOpen,
NdisRequestClose,
NdisRequestSend,
NdisRequestTransferData,
NdisRequestReset,
NdisRequestGeneric1,
NdisRequestGeneric2,
NdisRequestGeneric3,
NdisRequestGeneric4
} NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE;
typedef struct _NDIS_REQUEST {
UCHAR MacReserved[4 * sizeof(PVOID)];
NDIS_REQUEST_TYPE RequestType;
union _DATA {
struct QUERY_INFORMATION {
NDIS_OID Oid;
PVOID InformationBuffer;
UINT InformationBufferLength;
UINT BytesWritten;
UINT BytesNeeded;
} QUERY_INFORMATION;
struct SET_INFORMATION {
NDIS_OID Oid;
PVOID InformationBuffer;
UINT InformationBufferLength;
UINT BytesRead;
UINT BytesNeeded;
} SET_INFORMATION;
} DATA;
#if (defined(NDIS50) || defined(NDIS51))
UCHAR NdisReserved[9 * sizeof(PVOID)];
union {
UCHAR CallMgrReserved[2 * sizeof(PVOID)];
UCHAR ProtocolReserved[2 * sizeof(PVOID)];
};
UCHAR MiniportReserved[2 * sizeof(PVOID)];
#endif
} NDIS_REQUEST, *PNDIS_REQUEST;
/* Wide Area Networks definitions */
typedef struct _NDIS_WAN_PACKET {
LIST_ENTRY WanPacketQueue;
PUCHAR CurrentBuffer;
ULONG CurrentLength;
PUCHAR StartBuffer;
PUCHAR EndBuffer;
PVOID ProtocolReserved1;
PVOID ProtocolReserved2;
PVOID ProtocolReserved3;
PVOID ProtocolReserved4;
PVOID MacReserved1;
PVOID MacReserved2;
PVOID MacReserved3;
PVOID MacReserved4;
} NDIS_WAN_PACKET, *PNDIS_WAN_PACKET;
/* DMA channel information */
typedef struct _NDIS_DMA_DESCRIPTION {
BOOLEAN DemandMode;
BOOLEAN AutoInitialize;
BOOLEAN DmaChannelSpecified;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
ULONG DmaPort;
ULONG DmaChannel;
} NDIS_DMA_DESCRIPTION, *PNDIS_DMA_DESCRIPTION;
typedef struct _NDIS_DMA_BLOCK {
PVOID MapRegisterBase;
KEVENT AllocationEvent;
PADAPTER_OBJECT SystemAdapterObject;
PVOID Miniport;
BOOLEAN InProgress;
} NDIS_DMA_BLOCK, *PNDIS_DMA_BLOCK;
/* Possible hardware architecture */
typedef enum _NDIS_INTERFACE_TYPE {
NdisInterfaceInternal = Internal,
NdisInterfaceIsa = Isa,
NdisInterfaceEisa = Eisa,
NdisInterfaceMca = MicroChannel,
NdisInterfaceTurboChannel = TurboChannel,
NdisInterfacePci = PCIBus,
NdisInterfacePcMcia = PCMCIABus,
NdisInterfaceCBus = CBus,
NdisInterfaceMPIBus = MPIBus,
NdisInterfaceMPSABus = MPSABus,
NdisInterfaceProcessorInternal = ProcessorInternal,
NdisInterfaceInternalPowerBus = InternalPowerBus,
NdisInterfacePNPISABus = PNPISABus,
NdisInterfacePNPBus = PNPBus,
NdisMaximumInterfaceType
} NDIS_INTERFACE_TYPE, *PNDIS_INTERFACE_TYPE;
#define NdisInterruptLevelSensitive LevelSensitive
#define NdisInterruptLatched Latched
typedef KINTERRUPT_MODE NDIS_INTERRUPT_MODE, *PNDIS_INTERRUPT_MODE;
typedef enum _NDIS_PARAMETER_TYPE {
NdisParameterInteger,
NdisParameterHexInteger,
NdisParameterString,
NdisParameterMultiString,
NdisParameterBinary
} NDIS_PARAMETER_TYPE, *PNDIS_PARAMETER_TYPE;
typedef struct {
USHORT Length;
PVOID Buffer;
} BINARY_DATA;
typedef struct _NDIS_CONFIGURATION_PARAMETER {
NDIS_PARAMETER_TYPE ParameterType;
union {
ULONG IntegerData;
NDIS_STRING StringData;
BINARY_DATA BinaryData;
} ParameterData;
} NDIS_CONFIGURATION_PARAMETER, *PNDIS_CONFIGURATION_PARAMETER;
typedef PHYSICAL_ADDRESS NDIS_PHYSICAL_ADDRESS, *PNDIS_PHYSICAL_ADDRESS;
typedef struct _NDIS_PHYSICAL_ADDRESS_UNIT {
NDIS_PHYSICAL_ADDRESS PhysicalAddress;
UINT Length;
} NDIS_PHYSICAL_ADDRESS_UNIT, *PNDIS_PHYSICAL_ADDRESS_UNIT;
typedef struct _NDIS_WAN_LINE_DOWN {
UCHAR RemoteAddress[6];
UCHAR LocalAddress[6];
} NDIS_WAN_LINE_DOWN, *PNDIS_WAN_LINE_DOWN;
typedef struct _NDIS_WAN_LINE_UP {
ULONG LinkSpeed;
ULONG MaximumTotalSize;
NDIS_WAN_QUALITY Quality;
USHORT SendWindow;
UCHAR RemoteAddress[6];
/*OUT*/ UCHAR LocalAddress[6];
ULONG ProtocolBufferLength;
PUCHAR ProtocolBuffer;
USHORT ProtocolType;
NDIS_STRING DeviceName;
} NDIS_WAN_LINE_UP, *PNDIS_WAN_LINE_UP;
typedef VOID DDKAPI
(*ADAPTER_SHUTDOWN_HANDLER)(
/*IN*/ PVOID ShutdownContext);
typedef struct _OID_LIST OID_LIST, *POID_LIST;
/* PnP state */
typedef enum _NDIS_PNP_DEVICE_STATE {
NdisPnPDeviceAdded,
NdisPnPDeviceStarted,
NdisPnPDeviceQueryStopped,
NdisPnPDeviceStopped,
NdisPnPDeviceQueryRemoved,
NdisPnPDeviceRemoved,
NdisPnPDeviceSurpriseRemoved
} NDIS_PNP_DEVICE_STATE;
#define NDIS_DEVICE_NOT_STOPPABLE 0x00000001
#define NDIS_DEVICE_NOT_REMOVEABLE 0x00000002
#define NDIS_DEVICE_NOT_SUSPENDABLE 0x00000004
#define NDIS_DEVICE_DISABLE_PM 0x00000008
#define NDIS_DEVICE_DISABLE_WAKE_UP 0x00000010
#define NDIS_DEVICE_DISABLE_WAKE_ON_RECONNECT 0x00000020
#define NDIS_DEVICE_RESERVED 0x00000040
#define NDIS_DEVICE_DISABLE_WAKE_ON_MAGIC_PACKET 0x00000080
#define NDIS_DEVICE_DISABLE_WAKE_ON_PATTERN_MATCH 0x00000100
/* OID_GEN_NETWORK_LAYER_ADDRESSES */
typedef struct _NETWORK_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;
typedef struct _NETWORK_ADDRESS_LIST {
LONG AddressCount;
USHORT AddressType;
NETWORK_ADDRESS Address[1];
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
/* Protocol types supported by NDIS */
#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
/* OID_GEN_TRANSPORT_HEADER_OFFSET */
typedef struct _TRANSPORT_HEADER_OFFSET {
USHORT ProtocolType;
USHORT HeaderOffset;
} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
/* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */
typedef struct _NDIS_CO_LINK_SPEED {
ULONG Outbound;
ULONG Inbound;
} NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;
typedef ULONG NDIS_AF, *PNDIS_AF;
#define CO_ADDRESS_FAMILY_Q2931 ((NDIS_AF)0x1)
#define CO_ADDRESS_FAMILY_PSCHED ((NDIS_AF)0x2)
#define CO_ADDRESS_FAMILY_L2TP ((NDIS_AF)0x3)
#define CO_ADDRESS_FAMILY_IRDA ((NDIS_AF)0x4)
#define CO_ADDRESS_FAMILY_1394 ((NDIS_AF)0x5)
#define CO_ADDRESS_FAMILY_PPP ((NDIS_AF)0x6)
#define CO_ADDRESS_FAMILY_TAPI ((NDIS_AF)0x800)
#define CO_ADDRESS_FAMILY_TAPI_PROXY ((NDIS_AF)0x801)
#define CO_ADDRESS_FAMILY_PROXY 0x80000000
typedef struct {
NDIS_AF AddressFamily;
ULONG MajorVersion;
ULONG MinorVersion;
} CO_ADDRESS_FAMILY, *PCO_ADDRESS_FAMILY;
typedef struct _CO_FLOW_PARAMETERS {
ULONG TokenRate;
ULONG TokenBucketSize;
ULONG PeakBandwidth;
ULONG Latency;
ULONG DelayVariation;
SERVICETYPE ServiceType;
ULONG MaxSduSize;
ULONG MinimumPolicedSize;
} CO_FLOW_PARAMETERS, *PCO_FLOW_PARAMETERS;
typedef struct _CO_SPECIFIC_PARAMETERS {
ULONG ParamType;
ULONG Length;
UCHAR Parameters[1];
} CO_SPECIFIC_PARAMETERS, *PCO_SPECIFIC_PARAMETERS;
typedef struct _CO_CALL_MANAGER_PARAMETERS {
CO_FLOW_PARAMETERS Transmit;
CO_FLOW_PARAMETERS Receive;
CO_SPECIFIC_PARAMETERS CallMgrSpecific;
} CO_CALL_MANAGER_PARAMETERS, *PCO_CALL_MANAGER_PARAMETERS;
/* CO_MEDIA_PARAMETERS.Flags constants */
#define RECEIVE_TIME_INDICATION 0x00000001
#define USE_TIME_STAMPS 0x00000002
#define TRANSMIT_VC 0x00000004
#define RECEIVE_VC 0x00000008
#define INDICATE_ERRED_PACKETS 0x00000010
#define INDICATE_END_OF_TX 0x00000020
#define RESERVE_RESOURCES_VC 0x00000040
#define ROUND_DOWN_FLOW 0x00000080
#define ROUND_UP_FLOW 0x00000100
typedef struct _CO_MEDIA_PARAMETERS {
ULONG Flags;
ULONG ReceivePriority;
ULONG ReceiveSizeHint;
CO_SPECIFIC_PARAMETERS MediaSpecific;
} CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS;
/* CO_CALL_PARAMETERS.Flags constants */
#define PERMANENT_VC 0x00000001
#define CALL_PARAMETERS_CHANGED 0x00000002
#define QUERY_CALL_PARAMETERS 0x00000004
#define BROADCAST_VC 0x00000008
#define MULTIPOINT_VC 0x00000010
typedef struct _CO_CALL_PARAMETERS {
ULONG Flags;
PCO_CALL_MANAGER_PARAMETERS CallMgrParameters;
PCO_MEDIA_PARAMETERS MediaParameters;
} CO_CALL_PARAMETERS, *PCO_CALL_PARAMETERS;
typedef struct _CO_SAP {
ULONG SapType;
ULONG SapLength;
UCHAR Sap[1];
} CO_SAP, *PCO_SAP;
typedef struct _NDIS_IPSEC_PACKET_INFO {
_ANONYMOUS_UNION union {
struct {
NDIS_HANDLE OffloadHandle;
NDIS_HANDLE NextOffloadHandle;
} Transmit;
struct {
ULONG SA_DELETE_REQ : 1;
ULONG CRYPTO_DONE : 1;
ULONG NEXT_CRYPTO_DONE : 1;
ULONG CryptoStatus;
} Receive;
} DUMMYUNIONNAME;
} NDIS_IPSEC_PACKET_INFO, *PNDIS_IPSEC_PACKET_INFO;
/* NDIS_MAC_FRAGMENT.Errors constants */
#define WAN_ERROR_CRC 0x00000001
#define WAN_ERROR_FRAMING 0x00000002
#define WAN_ERROR_HARDWAREOVERRUN 0x00000004
#define WAN_ERROR_BUFFEROVERRUN 0x00000008
#define WAN_ERROR_TIMEOUT 0x00000010
#define WAN_ERROR_ALIGNMENT 0x00000020
typedef struct _NDIS_MAC_FRAGMENT {
NDIS_HANDLE NdisLinkContext;
ULONG Errors;
} NDIS_MAC_FRAGMENT, *PNDIS_MAC_FRAGMENT;
typedef struct _NDIS_MAC_LINE_DOWN {
NDIS_HANDLE NdisLinkContext;
} NDIS_MAC_LINE_DOWN, *PNDIS_MAC_LINE_DOWN;
typedef struct _NDIS_MAC_LINE_UP {
ULONG LinkSpeed;
NDIS_WAN_QUALITY Quality;
USHORT SendWindow;
NDIS_HANDLE ConnectionWrapperID;
NDIS_HANDLE NdisLinkHandle;
NDIS_HANDLE NdisLinkContext;
} NDIS_MAC_LINE_UP, *PNDIS_MAC_LINE_UP;
typedef struct _NDIS_PACKET_8021Q_INFO {
_ANONYMOUS_UNION union {
struct {
UINT32 UserPriority : 3;
UINT32 CanonicalFormatId : 1;
UINT32 VlanId : 12;
UINT32 Reserved : 16;
} TagHeader;
PVOID Value;
} DUMMYUNIONNAME;
} NDIS_PACKET_8021Q_INFO, *PNDIS_PACKET_8021Q_INFO;
typedef enum _NDIS_PER_PACKET_INFO {
TcpIpChecksumPacketInfo,
IpSecPacketInfo,
TcpLargeSendPacketInfo,
ClassificationHandlePacketInfo,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -