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

📄 ndis.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 5 页
字号:
/* * ndis.h * * Network Device Interface Specification definitions * * This file is part of the w32api package. * * Contributors: *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * DEFINES: i386                 - Target platform is i386 *          _NDIS_               - Define only for NDIS library *          NDIS_MINIPORT_DRIVER - Define only for NDIS miniport drivers *          NDIS40               - Use NDIS 4.0 structures by default *          NDIS50               - Use NDIS 5.0 structures by default *          NDIS50_MINIPORT      - Building NDIS 5.0 miniport driver *          NDIS51_MINIPORT      - Building NDIS 5.1 miniport driver */#ifndef __NDIS_H#define __NDIS_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#include "ntddndis.h"#include "netpnp.h"#include "netevent.h"#include <winsock2.h>#if defined(_NDIS_)  #define NDISAPI DECLSPEC_EXPORT#else  #define NDISAPI DECLSPEC_IMPORT#endif#if defined(NDIS50_MINIPORT)#ifndef NDIS50#define NDIS50#endif#endif /* NDIS50_MINIPORT */#if defined(NDIS51_MINIPORT)#ifndef NDIS51#define NDIS51#endif#endif /* NDIS51_MINIPORT *//* NDIS 3.0 is default */#if !defined(NDIS30) || !defined(NDIS40) || !defined(NDIS50) || !defined(NDIS51)#define NDIS30#endif /* !NDIS30 || !NDIS40 || !NDIS50 || !NDIS51 */#if 1/* FIXME: */typedef PVOID QUEUED_CLOSE;#endiftypedef ULONG NDIS_OID, *PNDIS_OID;typedef struct _X_FILTER FDDI_FILTER, *PFDDI_FILTER;typedef struct _X_FILTER TR_FILTER, *PTR_FILTER;typedef struct _X_FILTER NULL_FILTER, *PNULL_FILTER;typedef struct _REFERENCE {	KSPIN_LOCK  SpinLock;	USHORT  ReferenceCount;	BOOLEAN  Closing;} REFERENCE, * PREFERENCE;/* NDIS base types */typedef struct _NDIS_SPIN_LOCK {  KSPIN_LOCK  SpinLock;  KIRQL  OldIrql;} NDIS_SPIN_LOCK, * PNDIS_SPIN_LOCK;typedef struct _NDIS_EVENT {  KEVENT  Event;} NDIS_EVENT, *PNDIS_EVENT;typedef PVOID NDIS_HANDLE, *PNDIS_HANDLE;typedef int NDIS_STATUS, *PNDIS_STATUS;typedef ANSI_STRING NDIS_ANSI_STRING, *PNDIS_ANSI_STRING;typedef UNICODE_STRING NDIS_STRING, *PNDIS_STRING;typedef MDL NDIS_BUFFER, *PNDIS_BUFFER;typedef ULONG NDIS_ERROR_CODE, *PNDIS_ERROR_CODE;/* NDIS_STATUS constants */#define NDIS_STATUS_SUCCESS                     ((NDIS_STATUS)STATUS_SUCCESS)#define NDIS_STATUS_PENDING                     ((NDIS_STATUS)STATUS_PENDING)#define NDIS_STATUS_NOT_RECOGNIZED              ((NDIS_STATUS)0x00010001L)#define NDIS_STATUS_NOT_COPIED                  ((NDIS_STATUS)0x00010002L)#define NDIS_STATUS_NOT_ACCEPTED                ((NDIS_STATUS)0x00010003L)#define NDIS_STATUS_CALL_ACTIVE                 ((NDIS_STATUS)0x00010007L)#define NDIS_STATUS_ONLINE                      ((NDIS_STATUS)0x40010003L)#define NDIS_STATUS_RESET_START                 ((NDIS_STATUS)0x40010004L)#define NDIS_STATUS_RESET_END                   ((NDIS_STATUS)0x40010005L)#define NDIS_STATUS_RING_STATUS                 ((NDIS_STATUS)0x40010006L)#define NDIS_STATUS_CLOSED                      ((NDIS_STATUS)0x40010007L)#define NDIS_STATUS_WAN_LINE_UP                 ((NDIS_STATUS)0x40010008L)#define NDIS_STATUS_WAN_LINE_DOWN               ((NDIS_STATUS)0x40010009L)#define NDIS_STATUS_WAN_FRAGMENT                ((NDIS_STATUS)0x4001000AL)#define	NDIS_STATUS_MEDIA_CONNECT               ((NDIS_STATUS)0x4001000BL)#define	NDIS_STATUS_MEDIA_DISCONNECT            ((NDIS_STATUS)0x4001000CL)#define NDIS_STATUS_HARDWARE_LINE_UP            ((NDIS_STATUS)0x4001000DL)#define NDIS_STATUS_HARDWARE_LINE_DOWN          ((NDIS_STATUS)0x4001000EL)#define NDIS_STATUS_INTERFACE_UP                ((NDIS_STATUS)0x4001000FL)#define NDIS_STATUS_INTERFACE_DOWN              ((NDIS_STATUS)0x40010010L)#define NDIS_STATUS_MEDIA_BUSY                  ((NDIS_STATUS)0x40010011L)#define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION   ((NDIS_STATUS)0x40010012L)#define NDIS_STATUS_WW_INDICATION               NDIS_STATUS_MEDIA_SPECIFIC_INDICATION#define NDIS_STATUS_LINK_SPEED_CHANGE           ((NDIS_STATUS)0x40010013L)#define NDIS_STATUS_WAN_GET_STATS               ((NDIS_STATUS)0x40010014L)#define NDIS_STATUS_WAN_CO_FRAGMENT             ((NDIS_STATUS)0x40010015L)#define NDIS_STATUS_WAN_CO_LINKPARAMS           ((NDIS_STATUS)0x40010016L)#define NDIS_STATUS_NOT_RESETTABLE              ((NDIS_STATUS)0x80010001L)#define NDIS_STATUS_SOFT_ERRORS	                ((NDIS_STATUS)0x80010003L)#define NDIS_STATUS_HARD_ERRORS                 ((NDIS_STATUS)0x80010004L)#define NDIS_STATUS_BUFFER_OVERFLOW	            ((NDIS_STATUS)STATUS_BUFFER_OVERFLOW)#define NDIS_STATUS_FAILURE	                    ((NDIS_STATUS)STATUS_UNSUCCESSFUL)#define NDIS_STATUS_RESOURCES                   ((NDIS_STATUS)STATUS_INSUFFICIENT_RESOURCES)#define NDIS_STATUS_CLOSING	                    ((NDIS_STATUS)0xC0010002L)#define NDIS_STATUS_BAD_VERSION	                ((NDIS_STATUS)0xC0010004L)#define NDIS_STATUS_BAD_CHARACTERISTICS         ((NDIS_STATUS)0xC0010005L)#define NDIS_STATUS_ADAPTER_NOT_FOUND           ((NDIS_STATUS)0xC0010006L)#define NDIS_STATUS_OPEN_FAILED	                ((NDIS_STATUS)0xC0010007L)#define NDIS_STATUS_DEVICE_FAILED               ((NDIS_STATUS)0xC0010008L)#define NDIS_STATUS_MULTICAST_FULL              ((NDIS_STATUS)0xC0010009L)#define NDIS_STATUS_MULTICAST_EXISTS            ((NDIS_STATUS)0xC001000AL)#define NDIS_STATUS_MULTICAST_NOT_FOUND	        ((NDIS_STATUS)0xC001000BL)#define NDIS_STATUS_REQUEST_ABORTED	            ((NDIS_STATUS)0xC001000CL)#define NDIS_STATUS_RESET_IN_PROGRESS           ((NDIS_STATUS)0xC001000DL)#define NDIS_STATUS_CLOSING_INDICATING          ((NDIS_STATUS)0xC001000EL)#define NDIS_STATUS_NOT_SUPPORTED               ((NDIS_STATUS)STATUS_NOT_SUPPORTED)#define NDIS_STATUS_INVALID_PACKET              ((NDIS_STATUS)0xC001000FL)#define NDIS_STATUS_OPEN_LIST_FULL              ((NDIS_STATUS)0xC0010010L)#define NDIS_STATUS_ADAPTER_NOT_READY           ((NDIS_STATUS)0xC0010011L)#define NDIS_STATUS_ADAPTER_NOT_OPEN            ((NDIS_STATUS)0xC0010012L)#define NDIS_STATUS_NOT_INDICATING              ((NDIS_STATUS)0xC0010013L)#define NDIS_STATUS_INVALID_LENGTH              ((NDIS_STATUS)0xC0010014L)#define NDIS_STATUS_INVALID_DATA                ((NDIS_STATUS)0xC0010015L)#define NDIS_STATUS_BUFFER_TOO_SHORT            ((NDIS_STATUS)0xC0010016L)#define NDIS_STATUS_INVALID_OID	                ((NDIS_STATUS)0xC0010017L)#define NDIS_STATUS_ADAPTER_REMOVED	            ((NDIS_STATUS)0xC0010018L)#define NDIS_STATUS_UNSUPPORTED_MEDIA           ((NDIS_STATUS)0xC0010019L)#define NDIS_STATUS_GROUP_ADDRESS_IN_USE        ((NDIS_STATUS)0xC001001AL)#define NDIS_STATUS_FILE_NOT_FOUND              ((NDIS_STATUS)0xC001001BL)#define NDIS_STATUS_ERROR_READING_FILE          ((NDIS_STATUS)0xC001001CL)#define NDIS_STATUS_ALREADY_MAPPED              ((NDIS_STATUS)0xC001001DL)#define NDIS_STATUS_RESOURCE_CONFLICT           ((NDIS_STATUS)0xC001001EL)#define NDIS_STATUS_NO_CABLE                    ((NDIS_STATUS)0xC001001FL)#define NDIS_STATUS_INVALID_SAP	                ((NDIS_STATUS)0xC0010020L)#define NDIS_STATUS_SAP_IN_USE                  ((NDIS_STATUS)0xC0010021L)#define NDIS_STATUS_INVALID_ADDRESS             ((NDIS_STATUS)0xC0010022L)#define NDIS_STATUS_VC_NOT_ACTIVATED            ((NDIS_STATUS)0xC0010023L)#define NDIS_STATUS_DEST_OUT_OF_ORDER           ((NDIS_STATUS)0xC0010024L)#define NDIS_STATUS_VC_NOT_AVAILABLE            ((NDIS_STATUS)0xC0010025L)#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE      ((NDIS_STATUS)0xC0010026L)#define NDIS_STATUS_INCOMPATABLE_QOS            ((NDIS_STATUS)0xC0010027L)#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED      ((NDIS_STATUS)0xC0010028L)#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION     ((NDIS_STATUS)0xC0010029L)#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR       ((NDIS_STATUS)0xC0011000L)#define NDIS_STATUS_INVALID_DEVICE_REQUEST      ((NDIS_STATUS)STATUS_INVALID_DEVICE_REQUEST)#define NDIS_STATUS_NETWORK_UNREACHABLE         ((NDIS_STATUS)STATUS_NETWORK_UNREACHABLE)/* NDIS error codes for error logging */#define NDIS_ERROR_CODE_RESOURCE_CONFLICT			            EVENT_NDIS_RESOURCE_CONFLICT#define NDIS_ERROR_CODE_OUT_OF_RESOURCES			            EVENT_NDIS_OUT_OF_RESOURCE#define NDIS_ERROR_CODE_HARDWARE_FAILURE			            EVENT_NDIS_HARDWARE_FAILURE#define NDIS_ERROR_CODE_ADAPTER_NOT_FOUND			            EVENT_NDIS_ADAPTER_NOT_FOUND#define NDIS_ERROR_CODE_INTERRUPT_CONNECT			            EVENT_NDIS_INTERRUPT_CONNECT#define NDIS_ERROR_CODE_DRIVER_FAILURE				            EVENT_NDIS_DRIVER_FAILURE#define NDIS_ERROR_CODE_BAD_VERSION					              EVENT_NDIS_BAD_VERSION#define NDIS_ERROR_CODE_TIMEOUT						                EVENT_NDIS_TIMEOUT#define NDIS_ERROR_CODE_NETWORK_ADDRESS				            EVENT_NDIS_NETWORK_ADDRESS#define NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION	        EVENT_NDIS_UNSUPPORTED_CONFIGURATION#define NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER	      EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER#define NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER	  EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER#define NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS			          EVENT_NDIS_BAD_IO_BASE_ADDRESS#define NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL			          EVENT_NDIS_RECEIVE_SPACE_SMALL#define NDIS_ERROR_CODE_ADAPTER_DISABLED			            EVENT_NDIS_ADAPTER_DISABLED/* Memory allocation flags. Used by Ndis[Allocate|Free]Memory */#define NDIS_MEMORY_CONTIGUOUS            0x00000001#define NDIS_MEMORY_NONCACHED             0x00000002/* NIC attribute flags. Used by NdisMSetAttributes(Ex) */#define	NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT    0x00000001#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT   0x00000002#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004#define NDIS_ATTRIBUTE_BUS_MASTER               0x00000008#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER      0x00000010#define NDIS_ATTRIBUTE_DESERIALIZE              0x00000020#define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND       0x00000040#define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK       0x00000080#define NDIS_ATTRIBUTE_NOT_CO_NDIS              0x00000100#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS    0x00000200/* Lock */typedef union _NDIS_RW_LOCK_REFCOUNT {  UINT  RefCount;  UCHAR  cacheLine[16];} NDIS_RW_LOCK_REFCOUNT;typedef struct _NDIS_RW_LOCK {  union {    struct {      KSPIN_LOCK  SpinLock;      PVOID  Context;    } s;    UCHAR  Reserved[16];  } u;  NDIS_RW_LOCK_REFCOUNT  RefCount[MAXIMUM_PROCESSORS];} NDIS_RW_LOCK, *PNDIS_RW_LOCK;typedef struct _LOCK_STATE {  USHORT  LockState;  KIRQL  OldIrql;} LOCK_STATE, *PLOCK_STATE;/* Timer */typedef VOID DDKAPI(*PNDIS_TIMER_FUNCTION)(  /*IN*/ PVOID  SystemSpecific1,  /*IN*/ PVOID  FunctionContext,  /*IN*/ PVOID  SystemSpecific2,  /*IN*/ PVOID  SystemSpecific3);typedef struct _NDIS_TIMER {  KTIMER  Timer;  KDPC  Dpc;} NDIS_TIMER, *PNDIS_TIMER;/* Hardware */typedef CM_MCA_POS_DATA NDIS_MCA_POS_DATA, *PNDIS_MCA_POS_DATA;typedef CM_EISA_SLOT_INFORMATION NDIS_EISA_SLOT_INFORMATION, *PNDIS_EISA_SLOT_INFORMATION;typedef CM_EISA_FUNCTION_INFORMATION NDIS_EISA_FUNCTION_INFORMATION, *PNDIS_EISA_FUNCTION_INFORMATION;typedef CM_PARTIAL_RESOURCE_LIST NDIS_RESOURCE_LIST, *PNDIS_RESOURCE_LIST;/* Hardware status codes (OID_GEN_HARDWARE_STATUS) */typedef enum _NDIS_HARDWARE_STATUS {  NdisHardwareStatusReady,  NdisHardwareStatusInitializing,  NdisHardwareStatusReset,  NdisHardwareStatusClosing,  NdisHardwareStatusNotReady} NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;/* OID_GEN_GET_TIME_CAPS */typedef struct _GEN_GET_TIME_CAPS {  ULONG  Flags;  ULONG  ClockPrecision;} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;/* Flag bits */#define	READABLE_LOCAL_CLOCK                    0x00000001#define	CLOCK_NETWORK_DERIVED                   0x00000002#define	CLOCK_PRECISION                         0x00000004#define	RECEIVE_TIME_INDICATION_CAPABLE         0x00000008#define	TIMED_SEND_CAPABLE                      0x00000010#define	TIME_STAMP_CAPABLE                      0x00000020/* OID_GEN_GET_NETCARD_TIME */typedef struct _GEN_GET_NETCARD_TIME {  ULONGLONG  ReadTime;} GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;/* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */typedef enum _NDIS_MEDIUM {  NdisMedium802_3,  NdisMedium802_5,  NdisMediumFddi,  NdisMediumWan,  NdisMediumLocalTalk,  NdisMediumDix,  NdisMediumArcnetRaw,  NdisMediumArcnet878_2,  NdisMediumAtm,  NdisMediumWirelessWan,  NdisMediumIrda,  NdisMediumBpc,  NdisMediumCoWan,  NdisMedium1394,  NdisMediumMax} NDIS_MEDIUM, *PNDIS_MEDIUM;/* 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 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/* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */typedef enum _NDIS_MEDIA_STATE {	NdisMediaStateConnected,	NdisMediaStateDisconnected} NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;/* OID_GEN_SUPPORTED_GUIDS */typedef struct _NDIS_GUID {	GUID  Guid;	union {		NDIS_OID  Oid;		NDIS_STATUS  Status;	} u;	ULONG  Size;	ULONG  Flags;} NDIS_GUID, *PNDIS_GUID;#define	NDIS_GUID_TO_OID                  0x00000001#define	NDIS_GUID_TO_STATUS               0x00000002#define	NDIS_GUID_ANSI_STRING             0x00000004#define	NDIS_GUID_UNICODE_STRING          0x00000008#define	NDIS_GUID_ARRAY	                  0x00000010typedef struct _NDIS_PACKET_POOL {  NDIS_SPIN_LOCK  SpinLock;  struct _NDIS_PACKET *FreeList;  UINT  PacketLength;  UCHAR  Buffer[1];} NDIS_PACKET_POOL, * PNDIS_PACKET_POOL;/* NDIS_PACKET_PRIVATE.Flags constants */#define fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO    0x40#define fPACKET_ALLOCATED_BY_NDIS               0x80typedef struct _NDIS_PACKET_PRIVATE {  UINT  PhysicalCount;  UINT  TotalLength;  PNDIS_BUFFER  Head;  PNDIS_BUFFER  Tail;  PNDIS_PACKET_POOL  Pool;  UINT  Count;  ULONG  Flags;  BOOLEAN	 ValidCounts;  UCHAR  NdisPacketFlags;  USHORT  NdisPacketOobOffset;} NDIS_PACKET_PRIVATE, * PNDIS_PACKET_PRIVATE;typedef struct _NDIS_PACKET {  NDIS_PACKET_PRIVATE  Private;  union {    struct {      UCHAR  MiniportReserved[2 * sizeof(PVOID)];      UCHAR  WrapperReserved[2 * sizeof(PVOID)];    } s1;    struct {      UCHAR  MiniportReservedEx[3 * sizeof(PVOID)];      UCHAR  WrapperReservedEx[sizeof(PVOID)];    } s2;    struct {      UCHAR  MacReserved[4 * sizeof(PVOID)];    } s3;

⌨️ 快捷键说明

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