-/*\r
- * COPYRIGHT: See COPYING in the top level directory\r
- * PROJECT: ReactOS NDIS library\r
- * FILE: include/net/ndis.h\r
- * PURPOSE: Structures used by NDIS drivers\r
- * DEFINES: i386 - Target platform is i386\r
- * NDIS_WRAPPER - Define only for NDIS wrapper library\r
- * NDIS_MINIPORT_DRIVER - Define only for NDIS miniport drivers\r
- * BINARY_COMPATIBLE - 0 = Use macros for some features\r
- * - 1 = Use imports for features not available\r
- * NDIS40 - Use NDIS 4.0 structures by default\r
- * NDIS50 - Use NDIS 5.0 structures by default\r
- */\r
-#ifndef __NDIS_H\r
-#define __NDIS_H\r
-\r
-#ifdef __cplusplus\r
-extern "C"\r
-{\r
-#endif /* __cplusplus */\r
-\r
-#ifdef NDIS50\r
-#undef NDIS40\r
-#define NDIS40\r
-#endif\r
-\r
-\r
-/* Windows 9x compatibillity for miniports on x86 platform */\r
-#ifndef BINARY_COMPATIBLE\r
-#if defined(NDIS_MINIPORT_DRIVER) && defined(i386)\r
-#define BINARY_COMPATIBLE 1\r
-#else\r
-#define BINARY_COMPATIBLE 0\r
-#endif\r
-#endif\r
-\r
-#define UNALIGNED\r
-\r
-\r
-/* The NDIS library export functions. NDIS miniport drivers import functions */\r
-#ifdef NDIS_WRAPPER\r
-\r
-#ifdef _MSC_VER\r
-#define EXPIMP __declspec(dllexport)\r
-#else\r
-#define EXPIMP STDCALL\r
-#endif\r
-\r
-#else /* NDIS_WRAPPER */\r
-\r
-#ifdef _MSC_VER\r
-#define EXPIMP __declspec(dllimport)\r
-#else\r
-#define EXPIMP STDCALL\r
-#endif\r
-\r
-#endif /* NDIS_WRAPPER */\r
-\r
-\r
-\r
-#ifdef NDIS_MINIPORT_DRIVER\r
-\r
-#include "miniport.h"\r
-\r
-#else /* NDIS_MINIPORT_DRIVER */\r
-\r
-#ifdef _MSC_VER\r
-#include <ntddk.h>\r
-\r
-typedef ULONG ULONG_PTR, *PULONG_PTR;\r
-\r
-#else /* _MSC_VER */\r
-#include <ddk/ntddk.h>\r
-\r
-/* FIXME: Missed some definitions in there */\r
-\r
-typedef struct _DMA_CONFIGURATION_BYTE0\r
-{\r
- UCHAR Channel:3;\r
- UCHAR Reserved:3;\r
- UCHAR Shared:1;\r
- UCHAR MoreEntries:1;\r
-} DMA_CONFIGURATION_BYTE0;\r
-\r
-typedef struct _DMA_CONFIGURATION_BYTE1\r
-{\r
- UCHAR Reserved0:2;\r
- UCHAR TransferSize:2;\r
- UCHAR Timing:2;\r
- UCHAR Reserved1:2;\r
-} DMA_CONFIGURATION_BYTE1;\r
-\r
-\r
-typedef struct _CM_MCA_POS_DATA\r
-{\r
- USHORT AdapterId;\r
- UCHAR PosData1;\r
- UCHAR PosData2;\r
- UCHAR PosData3;\r
- UCHAR PosData4;\r
-} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;\r
-\r
-typedef struct _EISA_MEMORY_TYPE\r
-{\r
- UCHAR ReadWrite:1;\r
- UCHAR Cached:1;\r
- UCHAR Reserved0:1;\r
- UCHAR Type:2;\r
- UCHAR Shared:1;\r
- UCHAR Reserved1:1;\r
- UCHAR MoreEntries:1;\r
-} EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE;\r
-\r
-typedef struct _EISA_MEMORY_CONFIGURATION\r
-{\r
- EISA_MEMORY_TYPE ConfigurationByte;\r
- UCHAR DataSize;\r
- USHORT AddressLowWord;\r
- UCHAR AddressHighByte;\r
- USHORT MemorySize;\r
-} EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION;\r
-\r
-\r
-typedef struct _EISA_IRQ_DESCRIPTOR\r
-{\r
- UCHAR Interrupt:4;\r
- UCHAR Reserved:1;\r
- UCHAR LevelTriggered:1;\r
- UCHAR Shared:1;\r
- UCHAR MoreEntries:1;\r
-} EISA_IRQ_DESCRIPTOR, *PEISA_IRQ_DESCRIPTOR;\r
-\r
-typedef struct _EISA_IRQ_CONFIGURATION\r
-{\r
- EISA_IRQ_DESCRIPTOR ConfigurationByte;\r
- UCHAR Reserved;\r
-} EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION;\r
-\r
-typedef struct _EISA_DMA_CONFIGURATION\r
-{\r
- DMA_CONFIGURATION_BYTE0 ConfigurationByte0;\r
- DMA_CONFIGURATION_BYTE1 ConfigurationByte1;\r
-} EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION;\r
-\r
-\r
-typedef struct _EISA_PORT_DESCRIPTOR\r
-{\r
- UCHAR NumberPorts:5;\r
- UCHAR Reserved:1;\r
- UCHAR Shared:1;\r
- UCHAR MoreEntries:1;\r
-} EISA_PORT_DESCRIPTOR, *PEISA_PORT_DESCRIPTOR;\r
-\r
-typedef struct _EISA_PORT_CONFIGURATION\r
-{\r
- EISA_PORT_DESCRIPTOR Configuration;\r
- USHORT PortAddress;\r
-} EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION;\r
-\r
-typedef struct _CM_EISA_SLOT_INFORMATION\r
-{\r
- UCHAR ReturnCode;\r
- UCHAR ReturnFlags;\r
- UCHAR MajorRevision;\r
- UCHAR MinorRevision;\r
- USHORT Checksum;\r
- UCHAR NumberFunctions;\r
- UCHAR FunctionInformation;\r
- ULONG CompressedId;\r
-} CM_EISA_SLOT_INFORMATION, *PCM_EISA_SLOT_INFORMATION;\r
-\r
-typedef struct _CM_EISA_FUNCTION_INFORMATION\r
-{\r
- ULONG CompressedId;\r
- UCHAR IdSlotFlags1;\r
- UCHAR IdSlotFlags2;\r
- UCHAR MinorRevision;\r
- UCHAR MajorRevision;\r
- UCHAR Selections[26];\r
- UCHAR FunctionFlags;\r
- UCHAR TypeString[80];\r
- EISA_MEMORY_CONFIGURATION EisaMemory[9];\r
- EISA_IRQ_CONFIGURATION EisaIrq[7];\r
- EISA_DMA_CONFIGURATION EisaDma[4];\r
- EISA_PORT_CONFIGURATION EisaPort[20];\r
- UCHAR InitializationData[60];\r
-} CM_EISA_FUNCTION_INFORMATION, *PCM_EISA_FUNCTION_INFORMATION;\r
-\r
-#endif /* _MSC_VER */\r
-\r
-/* FIXME: Missed some definitions in there */\r
-\r
-typedef CONST CHAR *PCSTR;\r
-\r
-/* Could be defined in tdi.h */\r
-#ifndef __TDI_H\r
-typedef signed int INT, *PINT;\r
-#endif /* __TDI_H */\r
-\r
-#endif /* NDIS_MINIPORT_DRIVER */\r
-\r
-#include "netevent.h"\r
-#include "ndisoid.h"\r
-\r
-\r
-\r
-/* More types */\r
-\r
-typedef ULONG ULONG_PTR, *PULONG_PTR;\r
-\r
-\r
-#if defined(NDIS_MINIPORT_DRIVER) || !defined(_MSC_VER)\r
-\r
-typedef struct _GUID {\r
- ULONG Data1;\r
- USHORT Data2;\r
- USHORT Data3;\r
- UCHAR Data4[8];\r
-} GUID;\r
-\r
-#endif /* NDIS_MINIPORT_DRIVER || _MSC_VER */\r
-\r
-\r
-/* NDIS base types */\r
-\r
-typedef struct _NDIS_SPIN_LOCK\r
-{\r
- KSPIN_LOCK SpinLock;\r
- KIRQL OldIrql;\r
-} NDIS_SPIN_LOCK, * PNDIS_SPIN_LOCK;\r
-\r
-typedef struct _NDIS_EVENT\r
-{\r
- KEVENT Event;\r
-} NDIS_EVENT, *PNDIS_EVENT;\r
-\r
-typedef PVOID NDIS_HANDLE, *PNDIS_HANDLE;\r
-typedef int NDIS_STATUS, *PNDIS_STATUS;\r
-\r
-typedef UNICODE_STRING NDIS_STRING, *PNDIS_STRING;\r
-\r
-typedef PCSTR NDIS_ANSI_STRING, *PNDIS_ANSI_STRING;\r
-\r
-typedef MDL NDIS_BUFFER, *PNDIS_BUFFER;\r
-\r
-/* NDIS_STATUS constants */\r
-#define NDIS_STATUS_SUCCESS ((NDIS_STATUS)STATUS_SUCCESS)\r
-#define NDIS_STATUS_PENDING ((NDIS_STATUS)STATUS_PENDING)\r
-#define NDIS_STATUS_NOT_RECOGNIZED ((NDIS_STATUS)0x00010001L)\r
-#define NDIS_STATUS_NOT_COPIED ((NDIS_STATUS)0x00010002L)\r
-#define NDIS_STATUS_NOT_ACCEPTED ((NDIS_STATUS)0x00010003L)\r
-#define NDIS_STATUS_CALL_ACTIVE ((NDIS_STATUS)0x00010007L)\r
-\r
-#define NDIS_STATUS_ONLINE ((NDIS_STATUS)0x40010003L)\r
-#define NDIS_STATUS_RESET_START ((NDIS_STATUS)0x40010004L)\r
-#define NDIS_STATUS_RESET_END ((NDIS_STATUS)0x40010005L)\r
-#define NDIS_STATUS_RING_STATUS ((NDIS_STATUS)0x40010006L)\r
-#define NDIS_STATUS_CLOSED ((NDIS_STATUS)0x40010007L)\r
-#define NDIS_STATUS_WAN_LINE_UP ((NDIS_STATUS)0x40010008L)\r
-#define NDIS_STATUS_WAN_LINE_DOWN ((NDIS_STATUS)0x40010009L)\r
-#define NDIS_STATUS_WAN_FRAGMENT ((NDIS_STATUS)0x4001000AL)\r
-#define NDIS_STATUS_MEDIA_CONNECT ((NDIS_STATUS)0x4001000BL)\r
-#define NDIS_STATUS_MEDIA_DISCONNECT ((NDIS_STATUS)0x4001000CL)\r
-#define NDIS_STATUS_HARDWARE_LINE_UP ((NDIS_STATUS)0x4001000DL)\r
-#define NDIS_STATUS_HARDWARE_LINE_DOWN ((NDIS_STATUS)0x4001000EL)\r
-#define NDIS_STATUS_INTERFACE_UP ((NDIS_STATUS)0x4001000FL)\r
-#define NDIS_STATUS_INTERFACE_DOWN ((NDIS_STATUS)0x40010010L)\r
-#define NDIS_STATUS_MEDIA_BUSY ((NDIS_STATUS)0x40010011L)\r
-#define NDIS_STATUS_WW_INDICATION ((NDIS_STATUS)0x40010012L)\r
-#define NDIS_STATUS_TAPI_INDICATION ((NDIS_STATUS)0x40010080L)\r
-\r
-#define NDIS_STATUS_NOT_RESETTABLE ((NDIS_STATUS)0x80010001L)\r
-#define NDIS_STATUS_SOFT_ERRORS ((NDIS_STATUS)0x80010003L)\r
-#define NDIS_STATUS_HARD_ERRORS ((NDIS_STATUS)0x80010004L)\r
-#define NDIS_STATUS_BUFFER_OVERFLOW ((NDIS_STATUS)STATUS_BUFFER_OVERFLOW)\r
-\r
-#define NDIS_STATUS_FAILURE ((NDIS_STATUS)STATUS_UNSUCCESSFUL)\r
-#define NDIS_STATUS_RESOURCES ((NDIS_STATUS)STATUS_INSUFFICIENT_RESOURCES)\r
-#define NDIS_STATUS_CLOSING ((NDIS_STATUS)0xC0010002L)\r
-#define NDIS_STATUS_BAD_VERSION ((NDIS_STATUS)0xC0010004L)\r
-#define NDIS_STATUS_BAD_CHARACTERISTICS ((NDIS_STATUS)0xC0010005L)\r
-#define NDIS_STATUS_ADAPTER_NOT_FOUND ((NDIS_STATUS)0xC0010006L)\r
-#define NDIS_STATUS_OPEN_FAILED ((NDIS_STATUS)0xC0010007L)\r
-#define NDIS_STATUS_DEVICE_FAILED ((NDIS_STATUS)0xC0010008L)\r
-#define NDIS_STATUS_MULTICAST_FULL ((NDIS_STATUS)0xC0010009L)\r
-#define NDIS_STATUS_MULTICAST_EXISTS ((NDIS_STATUS)0xC001000AL)\r
-#define NDIS_STATUS_MULTICAST_NOT_FOUND ((NDIS_STATUS)0xC001000BL)\r
-#define NDIS_STATUS_REQUEST_ABORTED ((NDIS_STATUS)0xC001000CL)\r
-#define NDIS_STATUS_RESET_IN_PROGRESS ((NDIS_STATUS)0xC001000DL)\r
-#define NDIS_STATUS_CLOSING_INDICATING ((NDIS_STATUS)0xC001000EL)\r
-#define NDIS_STATUS_NOT_SUPPORTED ((NDIS_STATUS)STATUS_NOT_SUPPORTED)\r
-#define NDIS_STATUS_INVALID_PACKET ((NDIS_STATUS)0xC001000FL)\r
-#define NDIS_STATUS_OPEN_LIST_FULL ((NDIS_STATUS)0xC0010010L)\r
-#define NDIS_STATUS_ADAPTER_NOT_READY ((NDIS_STATUS)0xC0010011L)\r
-#define NDIS_STATUS_ADAPTER_NOT_OPEN ((NDIS_STATUS)0xC0010012L)\r
-#define NDIS_STATUS_NOT_INDICATING ((NDIS_STATUS)0xC0010013L)\r
-#define NDIS_STATUS_INVALID_LENGTH ((NDIS_STATUS)0xC0010014L)\r
-#define NDIS_STATUS_INVALID_DATA ((NDIS_STATUS)0xC0010015L)\r
-#define NDIS_STATUS_BUFFER_TOO_SHORT ((NDIS_STATUS)0xC0010016L)\r
-#define NDIS_STATUS_INVALID_OID ((NDIS_STATUS)0xC0010017L)\r
-#define NDIS_STATUS_ADAPTER_REMOVED ((NDIS_STATUS)0xC0010018L)\r
-#define NDIS_STATUS_UNSUPPORTED_MEDIA ((NDIS_STATUS)0xC0010019L)\r
-#define NDIS_STATUS_GROUP_ADDRESS_IN_USE ((NDIS_STATUS)0xC001001AL)\r
-#define NDIS_STATUS_FILE_NOT_FOUND ((NDIS_STATUS)0xC001001BL)\r
-#define NDIS_STATUS_ERROR_READING_FILE ((NDIS_STATUS)0xC001001CL)\r
-#define NDIS_STATUS_ALREADY_MAPPED ((NDIS_STATUS)0xC001001DL)\r
-#define NDIS_STATUS_RESOURCE_CONFLICT ((NDIS_STATUS)0xC001001EL)\r
-#define NDIS_STATUS_NO_CABLE ((NDIS_STATUS)0xC001001FL)\r
-\r
-#define NDIS_STATUS_INVALID_SAP ((NDIS_STATUS)0xC0010020L)\r
-#define NDIS_STATUS_SAP_IN_USE ((NDIS_STATUS)0xC0010021L)\r
-#define NDIS_STATUS_INVALID_ADDRESS ((NDIS_STATUS)0xC0010022L)\r
-#define NDIS_STATUS_VC_NOT_ACTIVATED ((NDIS_STATUS)0xC0010023L)\r
-#define NDIS_STATUS_DEST_OUT_OF_ORDER ((NDIS_STATUS)0xC0010024L)\r
-#define NDIS_STATUS_VC_NOT_AVAILABLE ((NDIS_STATUS)0xC0010025L)\r
-#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE ((NDIS_STATUS)0xC0010026L)\r
-#define NDIS_STATUS_INCOMPATABLE_QOS ((NDIS_STATUS)0xC0010027L)\r
-#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED ((NDIS_STATUS)0xC0010028L)\r
-#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION ((NDIS_STATUS)0xC0010029L)\r
-\r
-#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR ((NDIS_STATUS)0xC0011000L)\r
-\r
-\r
-/* NDIS error codes for error logging */\r
-\r
-#define NDIS_ERROR_CODE ULONG\r
-\r
-#define NDIS_ERROR_CODE_RESOURCE_CONFLICT EVENT_NDIS_RESOURCE_CONFLICT\r
-#define NDIS_ERROR_CODE_OUT_OF_RESOURCES EVENT_NDIS_OUT_OF_RESOURCE\r
-#define NDIS_ERROR_CODE_HARDWARE_FAILURE EVENT_NDIS_HARDWARE_FAILURE\r
-#define NDIS_ERROR_CODE_ADAPTER_NOT_FOUND EVENT_NDIS_ADAPTER_NOT_FOUND\r
-#define NDIS_ERROR_CODE_INTERRUPT_CONNECT EVENT_NDIS_INTERRUPT_CONNECT\r
-#define NDIS_ERROR_CODE_DRIVER_FAILURE EVENT_NDIS_DRIVER_FAILURE\r
-#define NDIS_ERROR_CODE_BAD_VERSION EVENT_NDIS_BAD_VERSION\r
-#define NDIS_ERROR_CODE_TIMEOUT EVENT_NDIS_TIMEOUT\r
-#define NDIS_ERROR_CODE_NETWORK_ADDRESS EVENT_NDIS_NETWORK_ADDRESS\r
-#define NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION EVENT_NDIS_UNSUPPORTED_CONFIGURATION\r
-#define NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER\r
-#define NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER\r
-#define NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS EVENT_NDIS_BAD_IO_BASE_ADDRESS\r
-#define NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL EVENT_NDIS_RECEIVE_SPACE_SMALL\r
-#define NDIS_ERROR_CODE_ADAPTER_DISABLED EVENT_NDIS_ADAPTER_DISABLED\r
-\r
-\r
-/* Memory allocation flags. Used by Ndis(Allocate|Free)Memory */\r
-#define NDIS_MEMORY_CONTIGUOUS 0x00000001\r
-#define NDIS_MEMORY_NONCACHED 0x00000002\r
-\r
-/* NIC attribute flags. Used by NdisMSetAttributes(Ex) */\r
-#define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001\r
-#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002\r
-#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004\r
-#define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008\r
-#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010\r
-\r
-\r
-\r
-#define MAXIMUM_PROCESSORS 32\r
-\r
-\r
-\r
-/* Lock */\r
-\r
-typedef union _NDIS_RW_LOCK_REFCOUNT\r
-{\r
- UINT RefCount;\r
- UCHAR cacheLine[16];\r
-} NDIS_RW_LOCK_REFCOUNT;\r
-\r
-typedef struct _NDIS_RW_LOCK\r
-{\r
- union\r
- {\r
- struct\r
- {\r
- KSPIN_LOCK SpinLock;\r
- PVOID Context;\r
- };\r
- UCHAR Reserved[16];\r
- };\r
-\r
- NDIS_RW_LOCK_REFCOUNT RefCount[MAXIMUM_PROCESSORS];\r
-} NDIS_RW_LOCK, *PNDIS_RW_LOCK;\r
-\r
-typedef struct _LOCK_STATE\r
-{\r
- USHORT LockState;\r
- KIRQL OldIrql;\r
-} LOCK_STATE, *PLOCK_STATE;\r
-\r
-\r
-\r
-/* Timer */\r
-\r
-typedef VOID (*PNDIS_TIMER_FUNCTION)(\r
- IN PVOID SystemSpecific1,\r
- IN PVOID FunctionContext,\r
- IN PVOID SystemSpecific2,\r
- IN PVOID SystemSpecific3);\r
-\r
-typedef struct _NDIS_TIMER\r
-{\r
- KTIMER Timer;\r
- KDPC Dpc;\r
-} NDIS_TIMER, *PNDIS_TIMER;\r
-\r
-\r
-\r
-/* Hardware */\r
-\r
-typedef CM_MCA_POS_DATA NDIS_MCA_POS_DATA, *PNDIS_MCA_POS_DATA;\r
-typedef CM_EISA_SLOT_INFORMATION NDIS_EISA_SLOT_INFORMATION, *PNDIS_EISA_SLOT_INFORMATION;\r
-typedef CM_EISA_FUNCTION_INFORMATION NDIS_EISA_FUNCTION_INFORMATION, *PNDIS_EISA_FUNCTION_INFORMATION;\r
-typedef CM_PARTIAL_RESOURCE_LIST NDIS_RESOURCE_LIST, *PNDIS_RESOURCE_LIST;\r
-\r
-/* Hardware status codes (OID_GEN_HARDWARE_STATUS) */\r
-typedef enum _NDIS_HARDWARE_STATUS\r
-{\r
- NdisHardwareStatusReady,\r
- NdisHardwareStatusInitializing,\r
- NdisHardwareStatusReset,\r
- NdisHardwareStatusClosing,\r
- NdisHardwareStatusNotReady\r
-} NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;\r
-\r
-/* OID_GEN_GET_TIME_CAPS */\r
-typedef struct _GEN_GET_TIME_CAPS\r
-{\r
- ULONG Flags;\r
- ULONG ClockPrecision;\r
-} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;\r
-\r
-/* Flag bits */\r
-#define READABLE_LOCAL_CLOCK 0x00000001\r
-#define CLOCK_NETWORK_DERIVED 0x00000002\r
-#define CLOCK_PRECISION 0x00000004\r
-#define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008\r
-#define TIMED_SEND_CAPABLE 0x00000010\r
-#define TIME_STAMP_CAPABLE 0x00000020\r
-\r
-/* OID_GEN_GET_NETCARD_TIME */\r
-typedef struct _GEN_GET_NETCARD_TIME\r
-{\r
- ULONGLONG ReadTime;\r
-} GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;\r
-\r
-/* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */\r
-typedef enum _NDIS_MEDIUM\r
-{\r
- NdisMedium802_3,\r
- NdisMedium802_5,\r
- NdisMediumFddi,\r
- NdisMediumWan,\r
- NdisMediumLocalTalk,\r
- NdisMediumDix, /* Defined for convenience, not a real medium */\r
- NdisMediumArcnetRaw,\r
- NdisMediumArcnet878_2,\r
- NdisMediumAtm,\r
- NdisMediumWirelessWan,\r
- NdisMediumIrda,\r
- NdisMediumBpc,\r
- NdisMediumCoWan,\r
- NdisMedium1394,\r
- NdisMediumMax\r
-} NDIS_MEDIUM, *PNDIS_MEDIUM;\r
-\r
-/* NDIS packet filter bits (OID_GEN_CURRENT_PACKET_FILTER) */\r
-#define NDIS_PACKET_TYPE_DIRECTED 0x00000001\r
-#define NDIS_PACKET_TYPE_MULTICAST 0x00000002\r
-#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004\r
-#define NDIS_PACKET_TYPE_BROADCAST 0x00000008\r
-#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010\r
-#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020\r
-#define NDIS_PACKET_TYPE_SMT 0x00000040\r
-#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080\r
-#define NDIS_PACKET_TYPE_GROUP 0x00001000\r
-#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000\r
-#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000\r
-#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000\r
-\r
-/* NDIS protocol option bits (OID_GEN_PROTOCOL_OPTIONS) */\r
-#define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001\r
-#define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002\r
-#define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004\r
-\r
-/* NDIS MAC option bits (OID_GEN_MAC_OPTIONS) */\r
-#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001\r
-#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002\r
-#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004\r
-#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008\r
-#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010\r
-#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020\r
-#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040\r
-#define NDIS_MAC_OPTION_RESERVED 0x80000000\r
-\r
-/* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */\r
-typedef enum _NDIS_MEDIA_STATE\r
-{\r
- NdisMediaStateConnected,\r
- NdisMediaStateDisconnected\r
-} NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;\r
-\r
-/* OID_GEN_SUPPORTED_GUIDS */\r
-typedef struct _NDIS_GUID\r
-{\r
- GUID Guid;\r
- union\r
- {\r
- NDIS_OID Oid;\r
- NDIS_STATUS Status;\r
- };\r
- ULONG Size;\r
- ULONG Flags;\r
-} NDIS_GUID, *PNDIS_GUID;\r
-\r
-#define NDIS_GUID_TO_OID 0x00000001\r
-#define NDIS_GUID_TO_STATUS 0x00000002\r
-#define NDIS_GUID_ANSI_STRING 0x00000004\r
-#define NDIS_GUID_UNICODE_STRING 0x00000008\r
-#define NDIS_GUID_ARRAY 0x00000010\r
-\r
-\r
-\r
-typedef struct _NDIS_PACKET_POOL\r
-{\r
- NDIS_SPIN_LOCK SpinLock;\r
- struct _NDIS_PACKET *FreeList;\r
- UINT PacketLength;\r
- UCHAR Buffer[1];\r
-} NDIS_PACKET_POOL, * PNDIS_PACKET_POOL;\r
-\r
-typedef struct _NDIS_PACKET_PRIVATE\r
-{\r
- UINT PhysicalCount;\r
- UINT TotalLength;\r
- PNDIS_BUFFER Head;\r
- PNDIS_BUFFER Tail;\r
- PNDIS_PACKET_POOL Pool;\r
- UINT Count;\r
- ULONG Flags; /* See fPACKET_xxx bits below */\r
- BOOLEAN ValidCounts;\r
- UCHAR NdisPacketFlags;\r
- USHORT NdisPacketOobOffset;\r
-} NDIS_PACKET_PRIVATE, * PNDIS_PACKET_PRIVATE;\r
-\r
-#define fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO 0x40\r
-#define fPACKET_ALLOCATED_BY_NDIS 0x80\r
-\r
-typedef struct _NDIS_PACKET {\r
- NDIS_PACKET_PRIVATE Private;\r
- union {\r
- struct {\r
- UCHAR MiniportReserved[2*sizeof(PVOID)];\r
- UCHAR WrapperReserved[2*sizeof(PVOID)];\r
- };\r
- struct {\r
- UCHAR MiniportReservedEx[3*sizeof(PVOID)];\r
- UCHAR WrapperReservedEx[sizeof(PVOID)];\r
- };\r
- struct {\r
- UCHAR MacReserved[4*sizeof(PVOID)];\r
- };\r
- };\r
- ULONG_PTR Reserved[2];\r
- UCHAR ProtocolReserved[1];\r
-} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;\r
-\r
-typedef struct _NDIS_PACKET_OOB_DATA {\r
- union {\r
- ULONGLONG TimeToSend;\r
- ULONGLONG TimeSent;\r
- };\r
- ULONGLONG TimeReceived;\r
- UINT HeaderSize;\r
- UINT SizeMediaSpecificInfo;\r
- PVOID MediaSpecificInformation;\r
- NDIS_STATUS Status;\r
-} NDIS_PACKET_OOB_DATA, *PNDIS_PACKET_OOB_DATA;\r
-\r
-typedef struct _NDIS_PM_PACKET_PATTERN\r
-{\r
- ULONG Priority;\r
- ULONG Reserved;\r
- ULONG MaskSize;\r
- ULONG PatternOffset;\r
- ULONG PatternSize;\r
- ULONG PatternFlags;\r
-} NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN;\r
-\r
-\r
-/* Request types used by NdisRequest */\r
-typedef enum _NDIS_REQUEST_TYPE\r
-{\r
- NdisRequestQueryInformation,\r
- NdisRequestSetInformation,\r
- NdisRequestQueryStatistics,\r
- NdisRequestOpen,\r
- NdisRequestClose,\r
- NdisRequestSend,\r
- NdisRequestTransferData,\r
- NdisRequestReset,\r
- NdisRequestGeneric1,\r
- NdisRequestGeneric2,\r
- NdisRequestGeneric3,\r
- NdisRequestGeneric4\r
-} NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE;\r
-\r
-typedef struct _NDIS_REQUEST {\r
- UCHAR MacReserved[16];\r
- NDIS_REQUEST_TYPE RequestType;\r
- union _DATA {\r
- struct QUERY_INFORMATION {\r
- NDIS_OID Oid;\r
- PVOID InformationBuffer;\r
- UINT InformationBufferLength;\r
- UINT BytesWritten;\r
- UINT BytesNeeded;\r
- } QUERY_INFORMATION;\r
- struct SET_INFORMATION {\r
- NDIS_OID Oid;\r
- PVOID InformationBuffer;\r
- UINT InformationBufferLength;\r
- UINT BytesRead;\r
- UINT BytesNeeded;\r
- } SET_INFORMATION;\r
- } DATA;\r
-} NDIS_REQUEST, *PNDIS_REQUEST;\r
-\r
-\r
-\r
-/* Wide Area Networks definitions */\r
-\r
-typedef struct _NDIS_WAN_PACKET\r
-{\r
- LIST_ENTRY WanPacketQueue;\r
- PUCHAR CurrentBuffer;\r
- ULONG CurrentLength;\r
- PUCHAR StartBuffer;\r
- PUCHAR EndBuffer;\r
- PVOID ProtocolReserved1;\r
- PVOID ProtocolReserved2;\r
- PVOID ProtocolReserved3;\r
- PVOID ProtocolReserved4;\r
- PVOID MacReserved1;\r
- PVOID MacReserved2;\r
- PVOID MacReserved3;\r
- PVOID MacReserved4;\r
-} NDIS_WAN_PACKET, *PNDIS_WAN_PACKET;\r
-\r
-\r
-\r
-/* DMA channel information */\r
-\r
-typedef struct _NDIS_DMA_DESCRIPTION\r
-{\r
- BOOLEAN DemandMode;\r
- BOOLEAN AutoInitialize;\r
- BOOLEAN DmaChannelSpecified;\r
- DMA_WIDTH DmaWidth;\r
- DMA_SPEED DmaSpeed;\r
- ULONG DmaPort;\r
- ULONG DmaChannel;\r
-} NDIS_DMA_DESCRIPTION, *PNDIS_DMA_DESCRIPTION;\r
-\r
-typedef struct _NDIS_DMA_BLOCK\r
-{\r
- PVOID MapRegisterBase;\r
- KEVENT AllocationEvent;\r
- PADAPTER_OBJECT SystemAdapterObject;\r
- BOOLEAN InProgress;\r
-} NDIS_DMA_BLOCK, *PNDIS_DMA_BLOCK;\r
-\r
-\r
-/* Possible hardware architecture */\r
-typedef enum _NDIS_INTERFACE_TYPE\r
-{\r
- NdisInterfaceInternal = Internal,\r
- NdisInterfaceIsa = Isa,\r
- NdisInterfaceEisa = Eisa,\r
- NdisInterfaceMca = MicroChannel,\r
- NdisInterfaceTurboChannel = TurboChannel,\r
- NdisInterfacePci = PCIBus,\r
- NdisInterfacePcMcia = PCMCIABus\r
-} NDIS_INTERFACE_TYPE, *PNDIS_INTERFACE_TYPE;\r
-\r
-#define NdisInterruptLatched Latched\r
-#define NdisInterruptLevelSensitive LevelSensitive\r
-typedef KINTERRUPT_MODE NDIS_INTERRUPT_MODE, *PNDIS_INTERRUPT_MODE;\r
-\r
-\r
-typedef enum _NDIS_PARAMETER_TYPE\r
-{\r
- NdisParameterInteger,\r
- NdisParameterHexInteger,\r
- NdisParameterString,\r
- NdisParameterMultiString\r
-} NDIS_PARAMETER_TYPE, *PNDIS_PARAMETER_TYPE;\r
-\r
-typedef struct _NDIS_CONFIGURATION_PARAMETER\r
-{\r
- NDIS_PARAMETER_TYPE ParameterType;\r
- union\r
- {\r
- ULONG IntegerData;\r
- NDIS_STRING StringData;\r
- } ParameterData;\r
-} NDIS_CONFIGURATION_PARAMETER, *PNDIS_CONFIGURATION_PARAMETER;\r
-\r
-\r
-typedef PHYSICAL_ADDRESS NDIS_PHYSICAL_ADDRESS, *PNDIS_PHYSICAL_ADDRESS;\r
-\r
-typedef struct _NDIS_PHYSICAL_ADDRESS_UNIT\r
-{\r
- NDIS_PHYSICAL_ADDRESS PhysicalAddress;\r
- UINT Length;\r
-} NDIS_PHYSICAL_ADDRESS_UNIT, *PNDIS_PHYSICAL_ADDRESS_UNIT;\r
-\r
-\r
-typedef VOID (*ADAPTER_SHUTDOWN_HANDLER)(\r
- IN PVOID ShutdownContext);\r
-\r
-\r
-\r
-#if defined(NDIS_WRAPPER) || !defined(NDIS_MINIPORT_DRIVER)\r
-\r
-/* Structures available only to full MAC drivers */\r
-\r
-typedef BOOLEAN (*PNDIS_INTERRUPT_SERVICE)(\r
- IN PVOID InterruptContext);\r
-\r
-typedef VOID (*PNDIS_DEFERRED_PROCESSING)(\r
- IN PVOID SystemSpecific1,\r
- IN PVOID InterruptContext,\r
- IN PVOID SystemSpecific2,\r
- IN PVOID SystemSpecific3);\r
-\r
-\r
-typedef struct _NDIS_INTERRUPT\r
-{\r
- PKINTERRUPT InterruptObject;\r
- KSPIN_LOCK DpcCountLock;\r
- PNDIS_INTERRUPT_SERVICE MacIsr;\r
- PNDIS_DEFERRED_PROCESSING MacDpc;\r
- KDPC InterruptDpc;\r
- PVOID InterruptContext;\r
- UCHAR DpcCount;\r
- BOOLEAN Removing;\r
- /* Used to tell when all DPCs for the adapter are completed */\r
- KEVENT DpcsCompletedEvent;\r
-} NDIS_INTERRUPT, *PNDIS_INTERRUPT;\r
-\r
-\r
-/* NDIS adapter information */\r
-\r
-typedef NDIS_STATUS (*PNDIS_ACTIVATE_CALLBACK)(\r
- IN NDIS_HANDLE NdisAdatperHandle,\r
- IN NDIS_HANDLE MacAdapterContext,\r
- IN ULONG DmaChannel);\r
-\r
-typedef struct _NDIS_PORT_DESCRIPTOR\r
-{\r
- ULONG InitialPort;\r
- ULONG NumberOfPorts;\r
- PVOID * PortOffset;\r
-} NDIS_PORT_DESCRIPTOR, *PNDIS_PORT_DESCRIPTOR;\r
-\r
-typedef struct _NDIS_ADAPTER_INFORMATION\r
-{\r
- ULONG DmaChannel;\r
- BOOLEAN Master;\r
- BOOLEAN Dma32BitAddresses;\r
- PNDIS_ACTIVATE_CALLBACK ActivateCallback;\r
- NDIS_INTERFACE_TYPE AdapterType;\r
- ULONG PhysicalMapRegistersNeeded;\r
- ULONG MaximumPhysicalMapping;\r
- ULONG NumberOfPortDescriptors;\r
- NDIS_PORT_DESCRIPTOR PortDescriptors[1];\r
-} NDIS_ADAPTER_INFORMATION, *PNDIS_ADAPTER_INFORMATION;\r
-\r
-\r
-/* Prototypes for NDIS_MAC_CHARACTERISTICS */\r
-\r
-typedef NDIS_STATUS (*OPEN_ADAPTER_HANDLER)(\r
- OUT PNDIS_STATUS OpenErrorStatus,\r
- OUT NDIS_HANDLE * MacBindingHandle,\r
- OUT PUINT SelectedMediumIndex,\r
- IN PNDIS_MEDIUM MediumArray,\r
- IN UINT MediumArraySize,\r
- IN NDIS_HANDLE NdisBindingContext,\r
- IN NDIS_HANDLE MacAdapterContext,\r
- IN UINT OpenOptions,\r
- IN PSTRING AddressingInformation OPTIONAL);\r
-\r
-typedef NDIS_STATUS (*CLOSE_ADAPTER_HANDLER)(\r
- IN NDIS_HANDLE MacBindingHandle);\r
-\r
-typedef NDIS_STATUS (*SEND_HANDLER)(\r
- IN NDIS_HANDLE MacBindingHandle,\r
- IN PNDIS_PACKET Packet);\r
-\r
-typedef NDIS_STATUS (*WAN_SEND_HANDLER)(\r
- IN NDIS_HANDLE MacBindingHandle,\r
- IN PNDIS_WAN_PACKET Packet);\r
-\r
-typedef NDIS_STATUS (*TRANSFER_DATA_HANDLER)(\r
- IN NDIS_HANDLE MacBindingHandle,\r
- IN NDIS_HANDLE MacReceiveContext,\r
- IN UINT ByteOffset,\r
- IN UINT BytesToTransfer,\r
- OUT PNDIS_PACKET Packet,\r
- OUT PUINT BytesTransferred);\r
-\r
-typedef NDIS_STATUS (*WAN_TRANSFER_DATA_HANDLER)(\r
- VOID);\r
-\r
-typedef NDIS_STATUS (*RESET_HANDLER)(\r
- IN NDIS_HANDLE MacBindingHandle);\r
-\r
-typedef NDIS_STATUS (*REQUEST_HANDLER)(\r
- IN NDIS_HANDLE MacBindingHandle,\r
- IN PNDIS_REQUEST NdisRequest);\r
-\r
-typedef NDIS_STATUS (*QUERY_GLOBAL_STATISTICS_HANDLER)(\r
- IN NDIS_HANDLE MacAdapterContext,\r
- IN PNDIS_REQUEST NdisRequest);\r
-\r
-typedef VOID (*UNLOAD_MAC_HANDLER)(\r
- IN NDIS_HANDLE MacMacContext);\r
-\r
-typedef NDIS_STATUS (*ADD_ADAPTER_HANDLER)(\r
- IN NDIS_HANDLE MacMacContext,\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN PNDIS_STRING AdapterName);\r
-\r
-typedef VOID (*REMOVE_ADAPTER_HANDLER)(\r
- IN NDIS_HANDLE MacAdapterContext);\r
-\r
-typedef struct _NDIS_MAC_CHARACTERISTICS\r
-{\r
- UCHAR MajorNdisVersion;\r
- UCHAR MinorNdisVersion;\r
- UINT Reserved;\r
- OPEN_ADAPTER_HANDLER OpenAdapterHandler;\r
- CLOSE_ADAPTER_HANDLER CloseAdapterHandler;\r
- SEND_HANDLER SendHandler;\r
- TRANSFER_DATA_HANDLER TransferDataHandler;\r
- RESET_HANDLER ResetHandler;\r
- REQUEST_HANDLER RequestHandler;\r
- QUERY_GLOBAL_STATISTICS_HANDLER QueryGlobalStatisticsHandler;\r
- UNLOAD_MAC_HANDLER UnloadMacHandler;\r
- ADD_ADAPTER_HANDLER AddAdapterHandler;\r
- REMOVE_ADAPTER_HANDLER RemoveAdapterHandler;\r
- NDIS_STRING Name;\r
-} NDIS_MAC_CHARACTERISTICS, *PNDIS_MAC_CHARACTERISTICS;\r
-\r
-typedef NDIS_MAC_CHARACTERISTICS NDIS_WAN_MAC_CHARACTERISTICS;\r
-typedef NDIS_WAN_MAC_CHARACTERISTICS *PNDIS_WAN_MAC_CHARACTERISTICS;\r
-\r
-\r
-\r
-/* Functions available only to full MAC drivers */\r
-\r
-VOID\r
-EXPIMP\r
-NdisAllocateSharedMemory(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN ULONG Length,\r
- IN BOOLEAN Cached,\r
- OUT PVOID *VirtualAddress,\r
- OUT PNDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCompleteCloseAdapter(\r
- IN NDIS_HANDLE NdisBindingContext,\r
- IN NDIS_STATUS Status);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCompleteOpenAdapter(\r
- IN NDIS_HANDLE NdisBindingContext,\r
- IN NDIS_STATUS Status,\r
- IN NDIS_STATUS OpenErrorStatus);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisDeregisterAdapter(\r
- IN NDIS_HANDLE NdisAdapterHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDeregisterAdapterShutdownHandler(\r
- IN NDIS_HANDLE NdisAdapterHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreeSharedMemory(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN ULONG Length,\r
- IN BOOLEAN Cached,\r
- IN PVOID VirtualAddress,\r
- IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-VOID\r
-EXPIMP\r
-NdisInitializeInterrupt(\r
- OUT PNDIS_STATUS Status,\r
- IN OUT PNDIS_INTERRUPT Interrupt,\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN PNDIS_INTERRUPT_SERVICE InterruptServiceRoutine,\r
- IN PVOID InterruptContext,\r
- IN PNDIS_DEFERRED_PROCESSING DeferredProcessingRoutine,\r
- IN UINT InterruptVector,\r
- IN UINT InterruptLevel,\r
- IN BOOLEAN SharedInterrupt,\r
- IN NDIS_INTERRUPT_MODE InterruptMode);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMapIoSpace(\r
- OUT PNDIS_STATUS Status,\r
- OUT PVOID *VirtualAddress,\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN NDIS_PHYSICAL_ADDRESS PhysicalAddress,\r
- IN UINT Length);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisRegisterAdapter(\r
- OUT PNDIS_HANDLE NdisAdapterHandle,\r
- IN NDIS_HANDLE NdisMacHandle,\r
- IN NDIS_HANDLE MacAdapterContext,\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN PNDIS_STRING AdapterName,\r
- IN PVOID AdapterInformation);\r
-\r
-VOID\r
-EXPIMP\r
-NdisRegisterAdapterShutdownHandler(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN PVOID ShutdownContext,\r
- IN ADAPTER_SHUTDOWN_HANDLER ShutdownHandler);\r
-\r
-VOID\r
-EXPIMP\r
-NdisRegisterMac(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_HANDLE NdisMacHandle,\r
- IN NDIS_HANDLE NdisWrapperHandle,\r
- IN NDIS_HANDLE MacMacContext,\r
- IN PNDIS_MAC_CHARACTERISTICS MacCharacteristics,\r
- IN UINT CharacteristicsLength);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReleaseAdapterResources(\r
- IN NDIS_HANDLE NdisAdapterHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisRemoveInterrupt(\r
- IN PNDIS_INTERRUPT Interrupt);\r
-\r
-#endif /* NDIS_WRAPPER || !NDIS_MINIPORT_DRIVER */\r
-\r
-\r
-\r
-#ifdef NDIS50\r
-\r
-typedef struct _ATM_ADDRESS ATM_ADDRESS, *PATM_ADDRESS;\r
-\r
-\r
-/* OID_GEN_NETWORK_LAYER_ADDRESSES */\r
-typedef struct _NETWORK_ADDRESS\r
-{\r
- USHORT AddressLength; \r
- USHORT AddressType; \r
- UCHAR Address[1]; \r
-} NETWORK_ADDRESS, *PNETWORK_ADDRESS;\r
-\r
-typedef struct _NETWORK_ADDRESS_LIST \r
-{\r
- LONG AddressCount; \r
- USHORT AddressType; \r
- NETWORK_ADDRESS Address[1]; \r
-} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;\r
-\r
-/* Protocol types supported by NDIS */\r
-#define NDIS_PROTOCOL_ID_DEFAULT 0x00\r
-#define NDIS_PROTOCOL_ID_TCP_IP 0x02\r
-#define NDIS_PROTOCOL_ID_IPX 0x06\r
-#define NDIS_PROTOCOL_ID_NBF 0x07\r
-#define NDIS_PROTOCOL_ID_MAX 0x0F\r
-#define NDIS_PROTOCOL_ID_MASK 0x0F\r
-\r
-/* OID_GEN_TRANSPORT_HEADER_OFFSET */\r
-typedef struct _TRANSPORT_HEADER_OFFSET\r
-{\r
- USHORT ProtocolType; \r
- USHORT HeaderOffset; \r
-} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;\r
-\r
-\r
-/* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */\r
-typedef struct _NDIS_CO_LINK_SPEED\r
-{\r
- ULONG Outbound;\r
- ULONG Inbound;\r
-} NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;\r
-\r
-\r
-typedef enum _NDIS_AF\r
-{\r
- CO_ADDRESS_FAMILY_Q2931 = 1,\r
- CO_ADDRESS_FAMILY_SPANS,\r
-} NDIS_AF, *PNDIS_AF;\r
-\r
-typedef struct\r
-{\r
- NDIS_AF AddressFamily;\r
- ULONG MajorVersion;\r
- ULONG MinorVersion;\r
-} CO_ADDRESS_FAMILY, *PCO_ADDRESS_FAMILY;\r
-\r
-typedef enum\r
-{\r
- BestEffortService,\r
- PredictiveService,\r
- GuaranteedService\r
-} GUARANTEE;\r
-\r
-typedef struct _CO_FLOW_PARAMETERS\r
-{\r
- ULONG TokenRate; /* In Bytes/sec */\r
- ULONG TokenBucketSize; /* In Bytes */\r
- ULONG PeakBandwidth; /* In Bytes/sec */\r
- ULONG Latency; /* In microseconds */\r
- ULONG DelayVariation; /* In microseconds */\r
- GUARANTEE LevelOfGuarantee; /* Guaranteed, Predictive or Best Effort */\r
- ULONG CostOfCall; /* Reserved for future use, */\r
- /* must be set to 0 now */\r
- ULONG NetworkAvailability; /* read-only: 1 if accessible, 0 if not */\r
- ULONG MaxSduSize; /* In Bytes */\r
-} CO_FLOW_PARAMETERS, *PCO_FLOW_PARAMETERS;\r
-\r
-typedef struct _CO_SPECIFIC_PARAMETERS\r
-{\r
- ULONG ParamType;\r
- ULONG Length;\r
- UCHAR Parameters[1];\r
-} CO_SPECIFIC_PARAMETERS, *PCO_SPECIFIC_PARAMETERS;\r
-\r
-typedef struct _CO_CALL_MANAGER_PARAMETERS {\r
- CO_FLOW_PARAMETERS Transmit;\r
- CO_FLOW_PARAMETERS Receive;\r
- CO_SPECIFIC_PARAMETERS CallMgrSpecific;\r
-} CO_CALL_MANAGER_PARAMETERS, *PCO_CALL_MANAGER_PARAMETERS;\r
-\r
-typedef struct _CO_MEDIA_PARAMETERS\r
-{\r
- ULONG Flags;\r
- ULONG ReceivePriority;\r
- ULONG ReceiveSizeHint;\r
- CO_SPECIFIC_PARAMETERS MediaSpecific;\r
-} CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS;\r
-\r
-/* Definitions for the flags in CO_MEDIA_PARAMETERS */\r
-#define RECEIVE_TIME_INDICATION 0x00000001\r
-#define USE_TIME_STAMPS 0x00000002\r
-#define TRANSMIT_VC 0x00000004\r
-#define RECEIVE_VC 0x00000008\r
-#define INDICATE_ERRED_PACKETS 0x00000010\r
-#define INDICATE_END_OF_TX 0x00000020\r
-#define RESERVE_RESOURCES_VC 0x00000040\r
-#define ROUND_DOWN_FLOW 0x00000080\r
-#define ROUND_UP_FLOW 0x00000100\r
-\r
-typedef struct _CO_CALL_PARAMETERS\r
-{\r
- ULONG Flags;\r
- PCO_CALL_MANAGER_PARAMETERS CallMgrParameters;\r
- PCO_MEDIA_PARAMETERS MediaParameters;\r
-} CO_CALL_PARAMETERS, *PCO_CALL_PARAMETERS;\r
-\r
-typedef struct _CO_SAP {\r
- ULONG SapType;\r
- ULONG SapLength;\r
- UCHAR Sap[1];\r
-} CO_SAP, *PCO_SAP;\r
-\r
-typedef struct _NDIS_IPSEC_PACKET_INFO\r
-{\r
- union\r
- {\r
- struct\r
- {\r
- NDIS_HANDLE OffloadHandle;\r
- NDIS_HANDLE NextOffloadHandle;\r
- } Transmit;\r
- \r
- struct\r
- {\r
- ULONG SA_DELETE_REQ:1;\r
- ULONG CRYPTO_DONE:1;\r
- ULONG NEXT_CRYPTO_DONE:1;\r
- ULONG CryptoStatus;\r
- } Receive;\r
- };\r
-} NDIS_IPSEC_PACKET_INFO, *PNDIS_IPSEC_PACKET_INFO;\r
-\r
-\r
-/* Plug and play and power management */\r
-\r
-/* PnP and PM event codes */\r
-typedef enum _NET_PNP_EVENT_CODE\r
-{\r
- NetEventSetPower,\r
- NetEventQueryPower,\r
- NetEventQueryRemoveDevice,\r
- NetEventCancelRemoveDevice,\r
- NetEventReconfigure,\r
- NetEventBindList,\r
- NetEventBindsComplete,\r
- NetEventPnPCapabilities,\r
- NetEventMaximum\r
-} NET_PNP_EVENT_CODE, *PNET_PNP_EVENT_CODE;\r
-\r
-/* Networking PnP event indication structure */\r
-typedef struct _NET_PNP_EVENT\r
-{\r
- /* Event code */\r
- NET_PNP_EVENT_CODE NetEvent;\r
- /* Event specific data */\r
- PVOID Buffer;\r
- /* Length of event specific data */\r
- ULONG BufferLength;\r
-\r
- /* Reserved areas */\r
- ULONG_PTR NdisReserved[4];\r
- ULONG_PTR TransportReserved[4];\r
- ULONG_PTR TdiReserved[4];\r
- ULONG_PTR TdiClientReserved[4];\r
-} NET_PNP_EVENT, *PNET_PNP_EVENT;\r
-\r
-/* Device power state structure */\r
-typedef enum _NET_DEVICE_POWER_STATE\r
-{\r
- NetDeviceStateUnspecified = 0,\r
- NetDeviceStateD0,\r
- NetDeviceStateD1,\r
- NetDeviceStateD2,\r
- NetDeviceStateD3,\r
- NetDeviceStateMaximum\r
-} NET_DEVICE_POWER_STATE, *PNET_DEVICE_POWER_STATE;\r
-\r
-\r
-\r
-/* Call Manager */\r
-\r
-typedef NDIS_STATUS (*CO_CREATE_VC_HANDLER)(\r
- IN NDIS_HANDLE ProtocolAfContext,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- OUT PNDIS_HANDLE ProtocolVcContext);\r
-\r
-typedef NDIS_STATUS (*CO_DELETE_VC_HANDLER)(\r
- IN NDIS_HANDLE ProtocolVcContext);\r
-\r
-typedef NDIS_STATUS (*CO_REQUEST_HANDLER)(\r
- IN NDIS_HANDLE ProtocolAfContext,\r
- IN NDIS_HANDLE ProtocolVcContext OPTIONAL,\r
- IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,\r
- IN OUT PNDIS_REQUEST NdisRequest);\r
-\r
-typedef VOID (*CO_REQUEST_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolAfContext OPTIONAL,\r
- IN NDIS_HANDLE ProtocolVcContext OPTIONAL,\r
- IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,\r
- IN PNDIS_REQUEST NdisRequest);\r
-\r
-\r
-typedef NDIS_STATUS (*CM_OPEN_AF_HANDLER)(\r
- IN NDIS_HANDLE CallMgrBindingContext,\r
- IN PCO_ADDRESS_FAMILY AddressFamily,\r
- IN NDIS_HANDLE NdisAfHandle,\r
- OUT PNDIS_HANDLE CallMgrAfContext\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_CLOSE_AF_HANDLER)(\r
- IN NDIS_HANDLE CallMgrAfContext\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_REG_SAP_HANDLER)(\r
- IN NDIS_HANDLE CallMgrAfContext,\r
- IN PCO_SAP Sap,\r
- IN NDIS_HANDLE NdisSapHandle,\r
- OUT PNDIS_HANDLE CallMgrSapContext\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_DEREG_SAP_HANDLER)(\r
- IN NDIS_HANDLE CallMgrSapContext\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_MAKE_CALL_HANDLER)(\r
- IN NDIS_HANDLE CallMgrVcContext,\r
- IN OUT PCO_CALL_PARAMETERS CallParameters,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- OUT PNDIS_HANDLE CallMgrPartyContext OPTIONAL\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_CLOSE_CALL_HANDLER)(\r
- IN NDIS_HANDLE CallMgrVcContext,\r
- IN NDIS_HANDLE CallMgrPartyContext OPTIONAL,\r
- IN PVOID CloseData OPTIONAL,\r
- IN UINT Size OPTIONAL\r
- );\r
-\r
-typedef\r
-VOID\r
-(*CM_INCOMING_CALL_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE CallMgrVcContext,\r
- IN PCO_CALL_PARAMETERS CallParameters\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_ADD_PARTY_HANDLER)(\r
- IN NDIS_HANDLE CallMgrVcContext,\r
- IN OUT PCO_CALL_PARAMETERS CallParameters,\r
- IN NDIS_HANDLE NdisPartyHandle,\r
- OUT PNDIS_HANDLE CallMgrPartyContext\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_DROP_PARTY_HANDLER)(\r
- IN NDIS_HANDLE CallMgrPartyContext,\r
- IN PVOID CloseData OPTIONAL,\r
- IN UINT Size OPTIONAL\r
- );\r
-\r
-typedef\r
-VOID\r
-(*CM_ACTIVATE_VC_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE CallMgrVcContext,\r
- IN PCO_CALL_PARAMETERS CallParameters\r
- );\r
-\r
-typedef\r
-VOID\r
-(*CM_DEACTIVATE_VC_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE CallMgrVcContext\r
- );\r
-\r
-typedef\r
-NDIS_STATUS\r
-(*CM_MODIFY_CALL_QOS_HANDLER)(\r
- IN NDIS_HANDLE CallMgrVcContext,\r
- IN PCO_CALL_PARAMETERS CallParameters\r
- );\r
-\r
-typedef struct _NDIS_CALL_MANAGER_CHARACTERISTICS\r
-{\r
- UCHAR MajorVersion;\r
- UCHAR MinorVersion;\r
-\r
- USHORT Filler;\r
- UINT Reserved;\r
-\r
- CO_CREATE_VC_HANDLER CmCreateVcHandler;\r
- CO_DELETE_VC_HANDLER CmDeleteVcHandler;\r
- CM_OPEN_AF_HANDLER CmOpenAfHandler;\r
- CM_CLOSE_AF_HANDLER CmCloseAfHandler;\r
- CM_REG_SAP_HANDLER CmRegisterSapHandler;\r
- CM_DEREG_SAP_HANDLER CmDeregisterSapHandler;\r
- CM_MAKE_CALL_HANDLER CmMakeCallHandler;\r
- CM_CLOSE_CALL_HANDLER CmCloseCallHandler;\r
- CM_INCOMING_CALL_COMPLETE_HANDLER CmIncomingCallCompleteHandler;\r
- CM_ADD_PARTY_HANDLER CmAddPartyHandler;\r
- CM_DROP_PARTY_HANDLER CmDropPartyHandler;\r
- CM_ACTIVATE_VC_COMPLETE_HANDLER CmActivateVcCompleteHandler;\r
- CM_DEACTIVATE_VC_COMPLETE_HANDLER CmDeactivateVcCompleteHandler;\r
- CM_MODIFY_CALL_QOS_HANDLER CmModifyCallQoSHandler;\r
- CO_REQUEST_HANDLER CmRequestHandler;\r
- CO_REQUEST_COMPLETE_HANDLER CmRequestCompleteHandler;\r
-} NDIS_CALL_MANAGER_CHARACTERISTICS, *PNDIS_CALL_MANAGER_CHARACTERISTICS;\r
-\r
-\r
-\r
-/* Call Manager clients */\r
-\r
-typedef VOID (*CL_OPEN_AF_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolAfContext,\r
- IN NDIS_HANDLE NdisAfHandle);\r
-\r
-typedef VOID (*CL_CLOSE_AF_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolAfContext);\r
-\r
-typedef VOID (*CL_REG_SAP_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolSapContext,\r
- IN PCO_SAP Sap,\r
- IN NDIS_HANDLE NdisSapHandle);\r
-\r
-typedef VOID (*CL_DEREG_SAP_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolSapContext);\r
-\r
-typedef VOID (*CL_MAKE_CALL_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-typedef VOID (*CL_MODIFY_CALL_QOS_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-typedef VOID (*CL_CLOSE_CALL_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN NDIS_HANDLE ProtocolPartyContext OPTIONAL);\r
-\r
-typedef VOID (*CL_ADD_PARTY_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolPartyContext,\r
- IN NDIS_HANDLE NdisPartyHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-typedef VOID (*CL_DROP_PARTY_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolPartyContext);\r
-\r
-typedef NDIS_STATUS (*CL_INCOMING_CALL_HANDLER)(\r
- IN NDIS_HANDLE ProtocolSapContext,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN OUT PCO_CALL_PARAMETERS CallParameters);\r
-\r
-typedef VOID (*CL_INCOMING_CALL_QOS_CHANGE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-typedef VOID (*CL_INCOMING_CLOSE_CALL_HANDLER)(\r
- IN NDIS_STATUS CloseStatus,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN PVOID CloseData OPTIONAL,\r
- IN UINT Size OPTIONAL);\r
-\r
-typedef VOID (*CL_INCOMING_DROP_PARTY_HANDLER)(\r
- IN NDIS_STATUS DropStatus,\r
- IN NDIS_HANDLE ProtocolPartyContext,\r
- IN PVOID CloseData OPTIONAL,\r
- IN UINT Size OPTIONAL);\r
-\r
-typedef VOID (*CL_CALL_CONNECTED_HANDLER)(\r
- IN NDIS_HANDLE ProtocolVcContext);\r
-\r
-\r
-typedef struct _NDIS_CLIENT_CHARACTERISTICS\r
-{\r
- UCHAR MajorVersion;\r
- UCHAR MinorVersion;\r
-\r
- USHORT Filler;\r
- UINT Reserved;\r
-\r
- CO_CREATE_VC_HANDLER ClCreateVcHandler;\r
- CO_DELETE_VC_HANDLER ClDeleteVcHandler;\r
- CO_REQUEST_HANDLER ClRequestHandler;\r
- CO_REQUEST_COMPLETE_HANDLER ClRequestCompleteHandler;\r
- CL_OPEN_AF_COMPLETE_HANDLER ClOpenAfCompleteHandler;\r
- CL_CLOSE_AF_COMPLETE_HANDLER ClCloseAfCompleteHandler;\r
- CL_REG_SAP_COMPLETE_HANDLER ClRegisterSapCompleteHandler;\r
- CL_DEREG_SAP_COMPLETE_HANDLER ClDeregisterSapCompleteHandler;\r
- CL_MAKE_CALL_COMPLETE_HANDLER ClMakeCallCompleteHandler;\r
- CL_MODIFY_CALL_QOS_COMPLETE_HANDLER ClModifyCallQoSCompleteHandler;\r
- CL_CLOSE_CALL_COMPLETE_HANDLER ClCloseCallCompleteHandler;\r
- CL_ADD_PARTY_COMPLETE_HANDLER ClAddPartyCompleteHandler;\r
- CL_DROP_PARTY_COMPLETE_HANDLER ClDropPartyCompleteHandler;\r
- CL_INCOMING_CALL_HANDLER ClIncomingCallHandler;\r
- CL_INCOMING_CALL_QOS_CHANGE_HANDLER ClIncomingCallQoSChangeHandler;\r
- CL_INCOMING_CLOSE_CALL_HANDLER ClIncomingCloseCallHandler;\r
- CL_INCOMING_DROP_PARTY_HANDLER ClIncomingDropPartyHandler;\r
- CL_CALL_CONNECTED_HANDLER ClCallConnectedHandler;\r
-} NDIS_CLIENT_CHARACTERISTICS, *PNDIS_CLIENT_CHARACTERISTICS;\r
-\r
-#endif /* NDIS50 */\r
-\r
-\r
-\r
-/* NDIS protocol structures */\r
-\r
-/* Prototypes for NDIS 3.0 protocol characteristics */\r
-\r
-typedef VOID (*OPEN_ADAPTER_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_STATUS Status,\r
- IN NDIS_STATUS OpenErrorStatus);\r
-\r
-typedef VOID (*CLOSE_ADAPTER_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_STATUS Status);\r
-\r
-typedef VOID (*RESET_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_STATUS Status);\r
-\r
-typedef VOID (*REQUEST_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PNDIS_REQUEST NdisRequest,\r
- IN NDIS_STATUS Status);\r
-\r
-typedef VOID (*STATUS_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_STATUS GeneralStatus,\r
- IN PVOID StatusBuffer,\r
- IN UINT StatusBufferSize);\r
-\r
-typedef VOID (*STATUS_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext);\r
-\r
-typedef VOID (*SEND_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PNDIS_PACKET Packet,\r
- IN NDIS_STATUS Status);\r
-\r
-typedef VOID (*WAN_SEND_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PNDIS_WAN_PACKET Packet,\r
- IN NDIS_STATUS Status);\r
-\r
-typedef VOID (*TRANSFER_DATA_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PNDIS_PACKET Packet,\r
- IN NDIS_STATUS Status,\r
- IN UINT BytesTransferred);\r
-\r
-typedef VOID (*WAN_TRANSFER_DATA_COMPLETE_HANDLER)(\r
- VOID);\r
-\r
-typedef NDIS_STATUS (*RECEIVE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_HANDLE MacReceiveContext,\r
- IN PVOID HeaderBuffer,\r
- IN UINT HeaderBufferSize,\r
- IN PVOID LookAheadBuffer,\r
- IN UINT LookaheadBufferSize,\r
- IN UINT PacketSize);\r
-\r
-typedef NDIS_STATUS (*WAN_RECEIVE_HANDLER)(\r
- IN NDIS_HANDLE NdisLinkHandle,\r
- IN PUCHAR Packet,\r
- IN ULONG PacketSize);\r
-\r
-typedef VOID (*RECEIVE_COMPLETE_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext);\r
-\r
-\r
-/* Protocol characteristics for NDIS 3.0 protocols */\r
-typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS\r
-{\r
- UCHAR MajorNdisVersion;\r
- UCHAR MinorNdisVersion;\r
- union\r
- {\r
- UINT Reserved;\r
- UINT Flags;\r
- };\r
- OPEN_ADAPTER_COMPLETE_HANDLER OpenAdapterCompleteHandler;\r
- CLOSE_ADAPTER_COMPLETE_HANDLER CloseAdapterCompleteHandler;\r
- union\r
- {\r
- SEND_COMPLETE_HANDLER SendCompleteHandler;\r
- WAN_SEND_COMPLETE_HANDLER WanSendCompleteHandler;\r
- };\r
- union\r
- {\r
- TRANSFER_DATA_COMPLETE_HANDLER TransferDataCompleteHandler;\r
- WAN_TRANSFER_DATA_COMPLETE_HANDLER WanTransferDataCompleteHandler;\r
- };\r
-\r
- RESET_COMPLETE_HANDLER ResetCompleteHandler;\r
- REQUEST_COMPLETE_HANDLER RequestCompleteHandler;\r
- union\r
- {\r
- RECEIVE_HANDLER ReceiveHandler;\r
- WAN_RECEIVE_HANDLER WanReceiveHandler;\r
- };\r
- RECEIVE_COMPLETE_HANDLER ReceiveCompleteHandler;\r
- STATUS_HANDLER StatusHandler;\r
- STATUS_COMPLETE_HANDLER StatusCompleteHandler;\r
- NDIS_STRING Name;\r
-} NDIS30_PROTOCOL_CHARACTERISTICS;\r
-\r
-\r
-/* Prototypes for NDIS 4.0 protocol characteristics */\r
-\r
-typedef INT (*RECEIVE_PACKET_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PNDIS_PACKET Packet);\r
-\r
-typedef VOID (*BIND_HANDLER)(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE BindContext,\r
- IN PNDIS_STRING DeviceName,\r
- IN PVOID SystemSpecific1,\r
- IN PVOID SystemSpecific2);\r
-\r
-typedef VOID (*UNBIND_HANDLER)(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_HANDLE UnbindContext);\r
-\r
-typedef VOID (*TRANSLATE_HANDLER)(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- OUT PNET_PNP_ID IdList,\r
- IN ULONG IdListLength,\r
- OUT PULONG BytesReturned);\r
-\r
-typedef VOID (*UNLOAD_PROTOCOL_HANDLER)(\r
- VOID);\r
-\r
-\r
-/* Protocol characteristics for NDIS 4.0 protocols */\r
-\r
-typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS\r
-{\r
- NDIS30_PROTOCOL_CHARACTERISTICS;\r
-\r
- RECEIVE_PACKET_HANDLER ReceivePacketHandler;\r
- BIND_HANDLER BindAdapterHandler;\r
- UNBIND_HANDLER UnbindAdapterHandler;\r
- TRANSLATE_HANDLER TranslateHandler;\r
- UNLOAD_PROTOCOL_HANDLER UnloadHandler;\r
-} NDIS40_PROTOCOL_CHARACTERISTICS;\r
-\r
-\r
-\r
-/* Prototypes for NDIS 5.0 protocol characteristics */\r
-\r
-#ifdef NDIS50\r
-\r
-typedef VOID (*CO_SEND_COMPLETE_HANDLER)(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN PNDIS_PACKET Packet);\r
-\r
-typedef VOID (*CO_STATUS_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_HANDLE ProtocolVcContext OPTIONAL,\r
- IN NDIS_STATUS GeneralStatus,\r
- IN PVOID StatusBuffer,\r
- IN UINT StatusBufferSize);\r
-\r
-typedef UINT (*CO_RECEIVE_PACKET_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN PNDIS_PACKET Packet);\r
-\r
-typedef VOID (*CO_AF_REGISTER_NOTIFY_HANDLER)(\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PCO_ADDRESS_FAMILY AddressFamily);\r
-\r
-\r
-typedef struct _NDIS50_PROTOCOL_CHARACTERISTICS\r
-{\r
- NDIS40_PROTOCOL_CHARACTERISTICS;\r
-\r
- PVOID ReservedHandlers[4];\r
-\r
- CO_SEND_COMPLETE_HANDLER CoSendCompleteHandler;\r
- CO_STATUS_HANDLER CoStatusHandler;\r
- CO_RECEIVE_PACKET_HANDLER CoReceivePacketHandler;\r
- CO_AF_REGISTER_NOTIFY_HANDLER CoAfRegisterNotifyHandler;\r
-} NDIS50_PROTOCOL_CHARACTERISTICS;\r
-\r
-#endif /* NDIS50 */\r
-\r
-\r
-#ifndef NDIS50\r
-#ifndef NDIS40\r
-typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS NDIS_PROTOCOL_CHARACTERISTICS;\r
-#else /* NDIS40 */\r
-typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS NDIS_PROTOCOL_CHARACTERISTICS;\r
-#endif /* NDIS40 */\r
-#else /* NDIS50 */\r
-typedef struct _NDIS50_PROTOCOL_CHARACTERISTICS NDIS_PROTOCOL_CHARACTERISTICS;\r
-#endif /* NDIS50 */\r
-\r
-typedef NDIS_PROTOCOL_CHARACTERISTICS *PNDIS_PROTOCOL_CHARACTERISTICS;\r
-\r
-\r
-\r
-/* Buffer management routines */\r
-\r
-VOID\r
-EXPIMP\r
-NdisAllocateBuffer(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_BUFFER *Buffer,\r
- IN NDIS_HANDLE PoolHandle,\r
- IN PVOID VirtualAddress,\r
- IN UINT Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisAllocateBufferPool(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_HANDLE PoolHandle,\r
- IN UINT NumberOfDescriptors);\r
-\r
-VOID\r
-EXPIMP\r
-NdisAllocatePacket(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_PACKET *Packet,\r
- IN NDIS_HANDLE PoolHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisAllocatePacketPool(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_HANDLE PoolHandle,\r
- IN UINT NumberOfDescriptors,\r
- IN UINT ProtocolReservedLength);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCopyBuffer(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_BUFFER *Buffer,\r
- IN NDIS_HANDLE PoolHandle,\r
- IN PVOID MemoryDescriptor,\r
- IN UINT Offset,\r
- IN UINT Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCopyFromPacketToPacket(\r
- IN PNDIS_PACKET Destination,\r
- IN UINT DestinationOffset,\r
- IN UINT BytesToCopy,\r
- IN PNDIS_PACKET Source,\r
- IN UINT SourceOffset,\r
- OUT PUINT BytesCopied);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDprAllocatePacket(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_PACKET *Packet,\r
- IN NDIS_HANDLE PoolHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDprAllocatePacketNonInterlocked(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_PACKET *Packet,\r
- IN NDIS_HANDLE PoolHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDprFreePacket(\r
- IN PNDIS_PACKET Packet);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDprFreePacketNonInterlocked(\r
- IN PNDIS_PACKET Packet);\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreeBufferPool(\r
- IN NDIS_HANDLE PoolHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreePacket(\r
- IN PNDIS_PACKET Packet);\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreePacketPool(\r
- IN NDIS_HANDLE PoolHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReturnPackets(\r
- IN PNDIS_PACKET *PacketsToReturn,\r
- IN UINT NumberOfPackets);\r
-\r
-VOID\r
-EXPIMP\r
-NdisUnchainBufferAtBack(\r
- IN OUT PNDIS_PACKET Packet,\r
- OUT PNDIS_BUFFER *Buffer);\r
-\r
-VOID\r
-EXPIMP\r
-NdisUnchainBufferAtFront(\r
- IN OUT PNDIS_PACKET Packet,\r
- OUT PNDIS_BUFFER *Buffer);\r
-\r
-#if BINARY_COMPATIBLE\r
-\r
-VOID\r
-EXPIMP\r
-NdisAdjustBufferLength(\r
- IN PNDIS_BUFFER Buffer,\r
- IN UINT Length);\r
-\r
-ULONG\r
-EXPIMP\r
-NDIS_BUFFER_TO_SPAN_PAGES(\r
- IN PNDIS_BUFFER Buffer);\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreeBuffer(\r
- IN PNDIS_BUFFER Buffer);\r
-\r
-VOID\r
-EXPIMP\r
-NdisGetBufferPhysicalArraySize(\r
- IN PNDIS_BUFFER Buffer,\r
- OUT PUINT ArraySize);\r
-\r
-VOID\r
-EXPIMP\r
-NdisGetFirstBufferFromPacket(\r
- IN PNDIS_PACKET _Packet,\r
- OUT PNDIS_BUFFER *_FirstBuffer,\r
- OUT PVOID *_FirstBufferVA,\r
- OUT PUINT _FirstBufferLength,\r
- OUT PUINT _TotalBufferLength);\r
-\r
-VOID\r
-EXPIMP\r
-NdisQueryBuffer(\r
- IN PNDIS_BUFFER Buffer,\r
- OUT PVOID *VirtualAddress OPTIONAL,\r
- OUT PUINT Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisQueryBufferOffset(\r
- IN PNDIS_BUFFER Buffer,\r
- OUT PUINT Offset,\r
- OUT PUINT Length);\r
-\r
-#else /* BINARY_COMPATIBLE */\r
-\r
-/*\r
- * PVOID NdisAdjustBufferLength(\r
- * IN PNDIS_BUFFER Buffer,\r
- * IN UINT Length);\r
- */\r
-#define NdisAdjustBufferLength(Buffer, \\r
- Length) \\r
-{ \\r
- (Buffer)->ByteCount = (Length); \\r
-}\r
-\r
-\r
-/*\r
- * ULONG NDIS_BUFFER_TO_SPAN_PAGES(\r
- * IN PNDIS_BUFFER Buffer);\r
- */\r
-#define NDIS_BUFFER_TO_SPAN_PAGES(Buffer) \\r
-( \\r
- MmGetMdlByteCount(Buffer) == 0 ? \\r
- 1 : \\r
- ADDRESS_AND_SIZE_TO_SPAN_PAGES( \\r
- MmGetMdlVirtualAddress(Buffer), \\r
- MmGetMdlByteCount(Buffer)) \\r
-)\r
-\r
-\r
-#if 0\r
-\r
-/*\r
- * VOID NdisFreeBuffer(\r
- * IN PNDIS_BUFFER Buffer);\r
- */\r
-#define NdisFreeBuffer(Buffer) \\r
-{ \\r
- IoFreeMdl(Buffer) /* ??? */ \\r
-}\r
-\r
-#else\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreeBuffer(\r
- IN PNDIS_BUFFER Buffer);\r
-\r
-#endif\r
-\r
-\r
-/*\r
- * VOID NdisGetBufferPhysicalArraySize(\r
- * IN PNDIS_BUFFER Buffer,\r
- * OUT PUINT ArraySize);\r
- */\r
-#define NdisGetBufferPhysicalArraySize(Buffer, \\r
- ArraySize) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisGetFirstBufferFromPacket(\r
- * IN PNDIS_PACKET _Packet,\r
- * OUT PNDIS_BUFFER * _FirstBuffer,\r
- * OUT PVOID * _FirstBufferVA,\r
- * OUT PUINT _FirstBufferLength,\r
- * OUT PUINT _TotalBufferLength)\r
- */\r
-#define NdisGetFirstBufferFromPacket(Packet, \\r
- FirstBuffer, \\r
- FirstBufferVA, \\r
- FirstBufferLength, \\r
- TotalBufferLength) \\r
-{ \\r
- PNDIS_BUFFER _Buffer; \\r
- \\r
- _Buffer = (Packet)->Private.Head; \\r
- *(FirstBuffer) = _Buffer; \\r
- *(FirstBufferVA) = MmGetMdlVirtualAddress(_Buffer); \\r
- if (_Buffer != NULL) { \\r
- *(FirstBufferLength) = MmGetMdlByteCount(_Buffer); \\r
- _Buffer = _Buffer->Next; \\r
- } else \\r
- *(FirstBufferLength) = 0; \\r
- *(TotalBufferLength) = *(FirstBufferLength); \\r
- while (_Buffer != NULL) { \\r
- *(TotalBufferLength) += MmGetMdlByteCount(_Buffer); \\r
- _Buffer = _Buffer->Next; \\r
- } \\r
-}\r
-\r
-/*\r
- * VOID NdisQueryBuffer(\r
- * IN PNDIS_BUFFER Buffer,\r
- * OUT PVOID *VirtualAddress OPTIONAL,\r
- * OUT PUINT Length)\r
- */\r
-#define NdisQueryBuffer(Buffer, \\r
- VirtualAddress, \\r
- Length) \\r
-{ \\r
- if (VirtualAddress != NULL) \\r
- *(PVOID*)(VirtualAddress) = MmGetSystemAddressForMdl(Buffer); \\r
- \\r
- *(Length) = MmGetMdlByteCount(Buffer); \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisQueryBufferOffset(\r
- * IN PNDIS_BUFFER Buffer,\r
- * OUT PUINT Offset,\r
- * OUT PUINT Length);\r
- */\r
-#define NdisQueryBufferOffset(Buffer, \\r
- Offset, \\r
- Length) \\r
-{ \\r
- *(PUINT)(Offset) = MmGetMdlByteOffset(Buffer); \\r
- *(PUINT)(Length) = MmGetMdlByteCount(Buffer); \\r
-}\r
-\r
-#endif /* BINARY_COMPATIBLE */\r
-\r
-\r
-/*\r
- * PVOID NDIS_BUFFER_LINKAGE(\r
- * IN PNDIS_BUFFER Buffer);\r
- */\r
-#define NDIS_BUFFER_LINKAGE(Buffer) \\r
-{ \\r
- (Buffer)->Next; \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisChainBufferAtBack(\r
- * IN OUT PNDIS_PACKET Packet,\r
- * IN OUT PNDIS_BUFFER Buffer)\r
- */\r
-#define NdisChainBufferAtBack(Packet, \\r
- Buffer) \\r
-{ \\r
- PNDIS_BUFFER NdisBuffer = (Buffer); \\r
- \\r
- while (NdisBuffer->Next != NULL) \\r
- NdisBuffer = NdisBuffer->Next; \\r
- \\r
- NdisBuffer->Next = NULL; \\r
- \\r
- if ((Packet)->Private.Head != NULL) \\r
- (Packet)->Private.Tail->Next = (Buffer); \\r
- else \\r
- (Packet)->Private.Head = (Buffer); \\r
- \\r
- (Packet)->Private.Tail = NdisBuffer; \\r
- (Packet)->Private.ValidCounts = FALSE; \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisChainBufferAtFront(\r
- * IN OUT PNDIS_PACKET Packet,\r
- * IN OUT PNDIS_BUFFER Buffer)\r
- */\r
-#define NdisChainBufferAtFront(Packet, \\r
- Buffer) \\r
-{ \\r
- PNDIS_BUFFER _NdisBuffer = (Buffer); \\r
- \\r
- while (_NdisBuffer->Next != NULL) \\r
- _NdisBuffer = _NdisBuffer->Next; \\r
- \\r
- if ((Packet)->Private.Head == NULL) \\r
- (Packet)->Private.Tail = _NdisBuffer; \\r
- \\r
- _NdisBuffer->Next = (Packet)->Private.Head; \\r
- (Packet)->Private.Head = (Buffer); \\r
- (Packet)->Private.ValidCounts = FALSE; \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisGetNextBuffer(\r
- * IN PNDIS_BUFFER CurrentBuffer,\r
- * OUT PNDIS_BUFFER * NextBuffer)\r
- */\r
-#define NdisGetNextBuffer(CurrentBuffer, \\r
- NextBuffer) \\r
-{ \\r
- *(NextBuffer) = (CurrentBuffer)->Next; \\r
-}\r
-\r
-\r
-/*\r
- * UINT NdisGetPacketFlags(\r
- * IN PNDIS_PACKET Packet); \r
- */\r
-#define NdisGetPacketFlags(Packet) \\r
-{ \\r
- (Packet)->Private.Flags; \\r
-}\r
-\r
-\r
-/*\r
- * UINT NDIS_GET_PACKET_HEADER_SIZE(\r
- * IN PNDIS_PACKET Packet);\r
- */\r
-#define NDIS_GET_PACKET_HEADER_SIZE(Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * VOID NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(\r
- * IN PNDIS_PACKET Packet,\r
- * IN PPVOID pMediaSpecificInfo,\r
- * IN PUINT pSizeMediaSpecificInfo);\r
- */\r
-#define NDIS_GET_PACKET_MEDIA_SPECIFIC_INFO(Packet, \\r
- pMediaSpecificInfo, \\r
- pSizeMediaSpecificInfo) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * VOID NDIS_STATUS NDIS_GET_PACKET_STATUS(\r
- * IN PNDIS_PACKET Packet);\r
- */\r
-#define NDIS_GET_PACKET_STATUS (Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * ULONGLONG NDIS_GET_PACKET_TIME_RECEIVED(\r
- * IN PNDIS_PACKET Packet);\r
- */\r
-#define NDIS_GET_PACKET_TIME_RECEIVED(Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * ULONGLONG NDIS_GET_PACKET_TIME_SENT(\r
- * IN PNDIS_PACKET Packet);\r
- */\r
-#define NDIS_GET_PACKET_TIME_SENT(Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * ULONGLONG NDIS_GET_PACKET_TIME_TO_SEND(\r
- * IN PNDIS_PACKET Packet);\r
- */\r
-#define NDIS_GET_PACKET_TIME_TO_SEND(Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * PNDIS_PACKET_OOB_DATA NDIS_OOB_DATA_FROM_PACKET(\r
- * IN PNDIS_PACKET _Packet);\r
- */\r
-#define NDIS_OOB_DATA_FROM_PACKET(_Packet) \\r
-{ \\r
-}\r
-\r
- \r
-/*\r
- * VOID NdisQueryPacket(\r
- * IN PNDIS_PACKET Packet,\r
- * OUT PUINT PhysicalBufferCount OPTIONAL,\r
- * OUT PUINT BufferCount OPTIONAL,\r
- * OUT PNDIS_BUFFER *FirstBuffer OPTIONAL,\r
- * OUT PUINT TotalPacketLength OPTIONAL);\r
- */\r
-#define NdisQueryPacket(Packet, \\r
- PhysicalBufferCount, \\r
- BufferCount, \\r
- FirstBuffer, \\r
- TotalPacketLength) \\r
-{ \\r
- if ((FirstBuffer) != NULL) \\r
- *(FirstBuffer) = (Packet)->Private.Head; \\r
- if ((TotalPacketLength) || (BufferCount) || (PhysicalBufferCount)) { \\r
- if (!(Packet)->Private.ValidCounts) { \\r
- UINT _Offset; \\r
- UINT _PacketLength; \\r
- PNDIS_BUFFER _NdisBuffer; \\r
- UINT _PhysicalBufferCount = 0; \\r
- UINT _TotalPacketLength = 0; \\r
- UINT _Count = 0; \\r
- \\r
- for (_NdisBuffer = (Packet)->Private.Head; \\r
- _NdisBuffer != (PNDIS_BUFFER)NULL; \\r
- _NdisBuffer = _NdisBuffer->Next) { \\r
- _PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(_NdisBuffer); \\r
- NdisQueryBufferOffset(_NdisBuffer, &_Offset, &_PacketLength); \\r
- _TotalPacketLength += _PacketLength; \\r
- _Count++; \\r
- } \\r
- (Packet)->Private.PhysicalCount = _PhysicalBufferCount; \\r
- (Packet)->Private.TotalLength = _TotalPacketLength; \\r
- (Packet)->Private.Count = _Count; \\r
- (Packet)->Private.ValidCounts = TRUE; \\r
- } \\r
- \\r
- if (PhysicalBufferCount) \\r
- *(PUINT)(PhysicalBufferCount) = (Packet)->Private.PhysicalCount; \\r
- \\r
- if (BufferCount) \\r
- *(PUINT)(BufferCount) = (Packet)->Private.Count; \\r
- \\r
- if (TotalPacketLength) \\r
- *(PUINT)(TotalPacketLength) = (Packet)->Private.TotalLength; \\r
- } \\r
-}\r
-\r
-/*\r
- * VOID NdisRecalculatePacketCounts(\r
- * IN OUT PNDIS_PACKET Packet);\r
- */\r
-#define NdisRecalculatePacketCounts(Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisReinitializePacket(\r
- * IN OUT PNDIS_PACKET Packet);\r
- */\r
-#define NdisReinitializePacketCounts(Packet) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisSetPacketFlags(\r
- * IN PNDIS_PACKET Packet,\r
- * IN UINT Flags); \r
- */\r
-#define NdisSetPacketFlags(Packet, Flags) \\r
- (Packet)->Private.Flags = (Flags);\r
-\r
-\r
-/*\r
- * NDIS_SET_PACKET_HEADER_SIZE(\r
- * IN PNDIS_PACKET Packet,\r
- * IN UINT HdrSize);\r
- */\r
-#define NDIS_SET_PACKET_HEADER_SIZE(Packet, \\r
- HdrSize) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(\r
- * IN PNDIS_PACKET Packet,\r
- * IN PVOID MediaSpecificInfo,\r
- * IN UINT SizeMediaSpecificInfo);\r
- */\r
-#define NDIS_SET_PACKET_MEDIA_SPECIFIC_INFO(Packet, \\r
- MediaSpecificInfo, \\r
- SizeMediaSpecificInfo) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * NDIS_SET_PACKET_STATUS(\r
- * IN PNDIS_PACKET Packet,\r
- * IN NDIS_STATUS Status);\r
- */\r
-#define NDIS_SET_PACKET_STATUS(Packet, \\r
- Status) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * NDIS_SET_PACKET_TIME_RECEIVED(\r
- * IN PNDIS_PACKET Packet,\r
- * IN ULONGLONG TimeReceived);\r
- */\r
-#define NDIS_SET_PACKET_TIME_RECEIVED(Packet) \\r
- TimeReceived) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * NDIS_SET_PACKET_TIME_SENT(\r
- * IN PNDIS_PACKET Packet,\r
- * IN ULONGLONG TimeSent);\r
- */\r
-#define NDIS_SET_PACKET_TIME_SENT(Packet, \\r
- TimeSent) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- *\r
- * NDIS_SET_PACKET_TIME_TO_SEND(\r
- * IN PNDIS_PACKET Packet,\r
- * IN ULONGLONG TimeToSend);\r
- */\r
-#define NDIS_SET_PACKET_TIME_TO_SEND(Packet, \\r
- TimeToSend) \\r
-{ \\r
-}\r
-\r
-\r
-/*\r
- * VOID NdisSetSendFlags(\r
- * IN PNDIS_PACKET Packet,\r
- * IN UINT Flags);\r
- */\r
-#define NdisSetSendFlags(Packet, Flags)( \\r
- NdisSetPacketFlags((Packet), (Flags)))\r
-\r
-\r
-\r
-/* Memory management routines */\r
-\r
-VOID\r
-EXPIMP\r
-NdisCreateLookaheadBufferFromSharedMemory(\r
- IN PVOID pSharedMemory,\r
- IN UINT LookaheadLength,\r
- OUT PVOID *pLookaheadBuffer);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDestroyLookaheadBufferFromSharedMemory(\r
- IN PVOID pLookaheadBuffer);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMoveFromMappedMemory(\r
- OUT PVOID Destination,\r
- IN PVOID Source,\r
- IN ULONG Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMoveMappedMemory(\r
- OUT PVOID Destination,\r
- IN PVOID Source,\r
- IN ULONG Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMoveToMappedMemory(\r
- OUT PVOID Destination,\r
- IN PVOID Source,\r
- IN ULONG Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMUpdateSharedMemory(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN ULONG Length,\r
- IN PVOID VirtualAddress,\r
- IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisAllocateMemory(\r
- OUT PVOID *VirtualAddress,\r
- IN UINT Length,\r
- IN UINT MemoryFlags,\r
- IN NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress);\r
-\r
-VOID\r
-EXPIMP\r
-NdisFreeMemory(\r
- IN PVOID VirtualAddress,\r
- IN UINT Length,\r
- IN UINT MemoryFlags);\r
-\r
-VOID\r
-EXPIMP\r
-NdisImmediateReadSharedMemory(\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN ULONG SharedMemoryAddress,\r
- OUT PUCHAR Buffer,\r
- IN ULONG Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisImmediateWriteSharedMemory(\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN ULONG SharedMemoryAddress,\r
- IN PUCHAR Buffer,\r
- IN ULONG Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMAllocateSharedMemory(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN ULONG Length,\r
- IN BOOLEAN Cached,\r
- OUT PVOID *VirtualAddress,\r
- OUT PNDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMAllocateSharedMemoryAsync(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN ULONG Length,\r
- IN BOOLEAN Cached,\r
- IN PVOID Context);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMFreeSharedMemory(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN ULONG Length,\r
- IN BOOLEAN Cached,\r
- IN PVOID VirtualAddress,\r
- IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-VOID\r
-EXPIMP\r
-NdisUpdateSharedMemory(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN ULONG Length,\r
- IN PVOID VirtualAddress,\r
- IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-\r
-/*\r
- * ULONG NdisGetPhysicalAddressHigh(\r
- * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
- */\r
-#define NdisGetPhysicalAddressHigh(PhysicalAddress) \\r
- ((PhysicalAddress).HighPart)\r
-\r
-/*\r
- * VOID NdisSetPhysicalAddressHigh(\r
- * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress,\r
- * IN ULONG Value);\r
- */\r
-#define NdisSetPhysicalAddressHigh(PhysicalAddress, Value) \\r
- ((PhysicalAddress).HighPart) = (Value)\r
-\r
-/*\r
- * ULONG NdisGetPhysicalAddressLow(\r
- * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
- */\r
-#define NdisGetPhysicalAddressLow(PhysicalAddress) \\r
- ((PhysicalAddress).LowPart)\r
-\r
-\r
-/*\r
- * VOID NdisSetPhysicalAddressLow(\r
- * IN NDIS_PHYSICAL_ADDRESS PhysicalAddress,\r
- * IN ULONG Value);\r
- */\r
-#define NdisSetPhysicalAddressLow(PhysicalAddress, Value) \\r
- ((PhysicalAddress).LowPart) = (Value)\r
-\r
-/*\r
- * VOID NDIS_PHYSICAL_ADDRESS_CONST(\r
- * IN ULONG Low,\r
- * IN LONG High); \r
- */\r
-#define NDIS_PHYSICAL_ADDRESS_CONST(Low, High) \\r
- { {(ULONG)(Low), (LONG)(High)} }\r
-\r
-\r
-/*\r
- * VOID NdisMoveMemory(\r
- * OUT PVOID Destination,\r
- * IN PVOID Source,\r
- * IN ULONG Length);\r
- */\r
-#define NdisMoveMemory(Destination, Source, Length) \\r
- RtlCopyMemory(Destination, Source, Length)\r
-\r
-\r
-/*\r
- * VOID NdisRetrieveUlong(\r
- * IN PULONG DestinationAddress,\r
- * IN PULONG SourceAddress);\r
- */\r
-#define NdisRetrieveUlong(DestinationAddress, SourceAddress) \\r
- RtlRetrieveUlong(DestinationAddress, SourceAddress)\r
-\r
-\r
-/*\r
- * VOID NdisStoreUlong(\r
- * IN PULONG DestinationAddress,\r
- * IN ULONG Value); \r
- */\r
-#define NdisStoreUlong(DestinationAddress, Value) \\r
- RtlStoreUlong(DestinationAddress, Value)\r
-\r
-\r
-/*\r
- * VOID NdisZeroMemory(\r
- * IN PVOID Destination,\r
- * IN ULONG Length)\r
- */\r
-#define NdisZeroMemory(Destination, Length) \\r
- RtlZeroMemory(Destination, Length)\r
-\r
-\r
-\r
-/* String management routines */\r
-\r
-#if BINARY_COMPATIBLE\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisAnsiStringToUnicodeString(\r
- IN OUT PNDIS_STRING DestinationString,\r
- IN PNDIS_ANSI_STRING SourceString);\r
-\r
-BOOLEAN\r
-EXPIMP\r
-NdisEqualString(\r
- IN PNDIS_STRING String1,\r
- IN PNDIS_STRING String2,\r
- IN BOOLEAN CaseInsensitive);\r
-\r
-VOID\r
-EXPIMP\r
-NdisInitAnsiString(\r
- IN OUT PNDIS_ANSI_STRING DestinationString,\r
- IN PCSTR SourceString);\r
-\r
-VOID\r
-EXPIMP\r
-NdisInitUnicodeString(\r
- IN OUT PNDIS_STRING DestinationString,\r
- IN PCWSTR SourceString);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisUnicodeStringToAnsiString(\r
- IN OUT PNDIS_ANSI_STRING DestinationString,\r
- IN PNDIS_STRING SourceString);\r
-\r
-#else /* BINARY_COMPATIBLE */\r
-\r
-/*\r
- * NDIS_STATUS NdisAnsiStringToUnicodeString(\r
- * IN OUT PNDIS_STRING DestinationString,\r
- * IN PNDIS_ANSI_STRING SourceString);\r
- */\r
-#define NdisAnsiStringToUnicodeString(DestinationString, \\r
- SourceString) \\r
- RtlAnsiStringToUnicodeString((DestinationString), (SourceString), FALSE)\r
-\r
-/*\r
- * BOOLEAN NdisEqualString(\r
- * IN PNDIS_STRING String1,\r
- * IN PNDIS_STRING String2,\r
- * IN BOOLEAN CaseInsensitive)\r
- */\r
-#define NdisEqualString(String1, \\r
- String2, \\r
- CaseInsensitive) \\r
- RtlEqualUnicodeString((String1), (String2), (CaseInsensitive))\r
-\r
-/*\r
- * VOID NdisInitAnsiString(\r
- * IN OUT PNDIS_ANSI_STRING DestinationString,\r
- * IN PCSTR SourceString)\r
- */\r
-#define NdisInitAnsiString(DestinationString, \\r
- SourceString) \\r
- RtlInitString((DestinationString), (SourceString))\r
-\r
-/*\r
- * VOID NdisInitUnicodeString(\r
- * IN OUT PNDIS_STRING DestinationString,\r
- * IN PCWSTR SourceString)\r
- */\r
-#define NdisInitUnicodeString(DestinationString, \\r
- SourceString) \\r
- RtlInitUnicodeString((DestinationString), (SourceString))\r
-\r
-/*\r
- * NDIS_STATUS NdisUnicodeStringToAnsiString(\r
- * IN OUT PNDIS_ANSI_STRING DestinationString,\r
- * IN PNDIS_STRING SourceString)\r
- */\r
-#define NdisUnicodeStringToAnsiString(DestinationString, \\r
- SourceString) \\r
- RtlUnicodeStringToAnsiString((DestinationString), (SourceString), FALSE)\r
-\r
-#endif /* BINARY_COMPATIBLE */\r
-\r
-#define NdisFreeString(_s) NdisFreeMemory((s).Buffer, (s).MaximumLength, 0)\r
-#define NdisPrintString(_s) DbgPrint("%ls", (s).Buffer)\r
-\r
-\r
-\r
-/* I/O routines */\r
-\r
-/*\r
- * VOID NdisRawReadPortBufferUchar(\r
- * IN ULONG Port,\r
- * OUT PUCHAR Buffer,\r
- * IN ULONG Length);\r
- */\r
-#define NdisRawReadPortBufferUchar(Port, Buffer, Length) \\r
- READ_PORT_BUFFER_UCHAR((PUCHAR)(Port), (PUCHAR)(Buffer), (Length))\r
-\r
-/*\r
- * VOID NdisRawReadPortBufferUlong(\r
- * IN ULONG Port,\r
- * OUT PULONG Buffer,\r
- * IN ULONG Length);\r
- */\r
-#define NdisRawReadPortBufferUlong(Port, Buffer, Length) \\r
- READ_PORT_BUFFER_ULONG((PULONG)(Port), (PULONG)(Buffer), (Length))\r
-\r
-/*\r
- * VOID NdisRawReadPortBufferUshort(\r
- * IN ULONG Port,\r
- * OUT PUSHORT Buffer,\r
- * IN ULONG Length);\r
- */\r
-#define NdisRawReadPortBufferUshort(Port, Buffer, Length) \\r
- READ_PORT_BUFFER_USHORT((PUSHORT)(Port), (PUSHORT)(Buffer), (Length))\r
-\r
-\r
-/*\r
- * VOID NdisRawReadPortUchar(\r
- * IN ULONG Port,\r
- * OUT PUCHAR Data);\r
- */\r
-#define NdisRawReadPortUchar(Port, Data) \\r
- *(Data) = READ_PORT_UCHAR((PUCHAR)(Port))\r
-\r
-/*\r
- * VOID NdisRawReadPortUlong(\r
- * IN ULONG Port,\r
- * OUT PULONG Data);\r
- */\r
-#define NdisRawReadPortUlong(Port, Data) \\r
- *(Data) = READ_PORT_ULONG((PULONG)(Port))\r
-\r
-/*\r
- * VOID NdisRawReadPortUshort(\r
- * IN ULONG Port,\r
- * OUT PUSHORT Data);\r
- */\r
-#define NdisRawReadPortUshort(Port, Data) \\r
- *(Data) = READ_PORT_USHORT((PUSHORT)(Port))\r
-\r
-\r
-/*\r
- * VOID NdisRawWritePortBufferUchar(\r
- * IN ULONG Port,\r
- * IN PUCHAR Buffer,\r
- * IN ULONG Length);\r
- */\r
-#define NdisRawWritePortBufferUchar(Port, Buffer, Length) \\r
- WRITE_PORT_BUFFER_UCHAR((PUCHAR)(Port), (PUCHAR)(Buffer), (Length))\r
-\r
-/*\r
- * VOID NdisRawWritePortBufferUlong(\r
- * IN ULONG Port,\r
- * IN PULONG Buffer,\r
- * IN ULONG Length);\r
- */\r
-#define NdisRawWritePortBufferUlong(Port, Buffer, Length) \\r
- WRITE_PORT_BUFFER_ULONG((PULONG)(Port), (PULONG)(Buffer), (Length))\r
-\r
-/*\r
- * VOID NdisRawWritePortBufferUshort(\r
- * IN ULONG Port,\r
- * IN PUSHORT Buffer,\r
- * IN ULONG Length);\r
- */\r
-#define NdisRawWritePortBufferUshort(Port, Buffer, Length) \\r
- WRITE_PORT_BUFFER_USHORT((PUSHORT)(Port), (PUSHORT)(Buffer), (Length))\r
-\r
-\r
-/*\r
- * VOID NdisRawWritePortUchar(\r
- * IN ULONG Port,\r
- * IN UCHAR Data);\r
- */\r
-#define NdisRawWritePortUchar(Port, Data) \\r
- WRITE_PORT_UCHAR((PUCHAR)(Port), (UCHAR)(Data))\r
-\r
-/*\r
- * VOID NdisRawWritePortUlong(\r
- * IN ULONG Port,\r
- * IN ULONG Data);\r
- */\r
-#define NdisRawWritePortUlong(Port, Data) \\r
- WRITE_PORT_ULONG((PULONG)(Port), (ULONG)(Data))\r
-\r
-/*\r
- * VOID NdisRawWritePortUshort(\r
- * IN ULONG Port,\r
- * IN USHORT Data);\r
- */\r
-#define NdisRawWritePortUshort(Port, Data) \\r
- WRITE_PORT_USHORT((PUSHORT)(Port), (USHORT)(Data))\r
-\r
-\r
-/*\r
- * VOID NdisReadRegisterUchar(\r
- * IN PUCHAR Register,\r
- * OUT PUCHAR Data);\r
- */\r
-#define NdisReadRegisterUchar(Register, Data) \\r
- *((PUCHAR)(Data)) = *(Register)\r
-\r
-/*\r
- * VOID NdisReadRegisterUlong(\r
- * IN PULONG Register,\r
- * OUT PULONG Data);\r
- */\r
-#define NdisReadRegisterUlong(Register, Data) \\r
- *((PULONG)(Data)) = *(Register)\r
-\r
-/*\r
- * VOID NdisReadRegisterUshort(\r
- * IN PUSHORT Register,\r
- * OUT PUSHORT Data);\r
- */\r
-#define NdisReadRegisterUshort(Register, Data) \\r
- *((PUSHORT)(Data)) = *(Register)\r
-\r
-\r
-/*\r
- * VOID NdisReadRegisterUchar(\r
- * IN PUCHAR Register,\r
- * IN UCHAR Data);\r
- */\r
-#define NdisWriteRegisterUchar(Register, Data) \\r
- WRITE_REGISTER_UCHAR((Register), (Data))\r
-\r
-/*\r
- * VOID NdisReadRegisterUlong(\r
- * IN PULONG Register,\r
- * IN ULONG Data);\r
- */\r
-#define NdisWriteRegisterUlong(Register, Data) \\r
- WRITE_REGISTER_ULONG((Register), (Data))\r
-\r
-/*\r
- * VOID NdisReadRegisterUshort(\r
- * IN PUSHORT Register,\r
- * IN USHORT Data);\r
- */\r
-#define NdisWriteRegisterUshort(Register, Data) \\r
- WRITE_REGISTER_USHORT((Register), (Data))\r
-\r
-\r
-\r
-VOID\r
-EXPIMP\r
-NdisCloseAdapter(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisBindingHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCloseConfiguration(\r
- IN NDIS_HANDLE ConfigurationHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCompleteBindAdapter(\r
- IN NDIS_HANDLE BindAdapterContext,\r
- IN NDIS_STATUS Status,\r
- IN NDIS_STATUS OpenStatus);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCompleteUnbindAdapter(\r
- IN NDIS_HANDLE UnbindAdapterContext,\r
- IN NDIS_STATUS Status);\r
-\r
-VOID\r
-EXPIMP\r
-NdisDeregisterProtocol(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisProtocolHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisInitializeListHead(\r
- IN PLIST_ENTRY ListHead);\r
-\r
-VOID\r
-EXPIMP\r
-NdisInterlockedAddUlong(\r
- IN PULONG Addend,\r
- IN ULONG Increment,\r
- IN PNDIS_SPIN_LOCK SpinLock);\r
-\r
-PLIST_ENTRY\r
-EXPIMP\r
-NdisInterlockedInsertHeadList(\r
- IN PLIST_ENTRY ListHead,\r
- IN PLIST_ENTRY ListEntry,\r
- IN PNDIS_SPIN_LOCK SpinLock);\r
-\r
-PLIST_ENTRY\r
-EXPIMP\r
-NdisInterlockedInsertTailList(\r
- IN PLIST_ENTRY ListHead,\r
- IN PLIST_ENTRY ListEntry,\r
- IN PNDIS_SPIN_LOCK SpinLock); \r
-\r
-PLIST_ENTRY\r
-EXPIMP\r
-NdisInterlockedRemoveHeadList(\r
- IN PLIST_ENTRY ListHead,\r
- IN PNDIS_SPIN_LOCK SpinLock); \r
-\r
-VOID\r
-EXPIMP\r
-NdisOpenAdapter(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_STATUS OpenErrorStatus,\r
- OUT PNDIS_HANDLE NdisBindingHandle,\r
- OUT PUINT SelectedMediumIndex,\r
- IN PNDIS_MEDIUM MediumArray,\r
- IN UINT MediumArraySize,\r
- IN NDIS_HANDLE NdisProtocolHandle,\r
- IN NDIS_HANDLE ProtocolBindingContext,\r
- IN PNDIS_STRING AdapterName,\r
- IN UINT OpenOptions,\r
- IN PSTRING AddressingInformation);\r
-\r
-VOID\r
-EXPIMP\r
-NdisOpenProtocolConfiguration(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_HANDLE ConfigurationHandle,\r
- IN PNDIS_STRING ProtocolSection);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisQueryReceiveInformation(\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN NDIS_HANDLE MacContext,\r
- OUT PLONGLONG TimeSent OPTIONAL,\r
- OUT PLONGLONG TimeReceived OPTIONAL,\r
- IN PUCHAR Buffer,\r
- IN UINT BufferSize,\r
- OUT PUINT SizeNeeded);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReadConfiguration(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_CONFIGURATION_PARAMETER *ParameterValue,\r
- IN NDIS_HANDLE ConfigurationHandle,\r
- IN PNDIS_STRING Keyword,\r
- IN NDIS_PARAMETER_TYPE ParameterType);\r
-\r
-VOID\r
-EXPIMP\r
-NdisRegisterProtocol(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_HANDLE NdisProtocolHandle,\r
- IN PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics,\r
- IN UINT CharacteristicsLength);\r
-\r
-VOID\r
-EXPIMP\r
-NdisRequest(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN PNDIS_REQUEST NdisRequest);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReset(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisBindingHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReturnPackets(\r
- IN PNDIS_PACKET *PacketsToReturn,\r
- IN UINT NumberOfPackets);\r
-\r
-VOID\r
-EXPIMP\r
-NdisSend(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN PNDIS_PACKET Packet);\r
-\r
-VOID\r
-EXPIMP\r
-NdisSendPackets(\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN PPNDIS_PACKET PacketArray,\r
- IN UINT NumberOfPackets);\r
-\r
-VOID\r
-EXPIMP\r
-NdisTransferData(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN NDIS_HANDLE MacReceiveContext,\r
- IN UINT ByteOffset,\r
- IN UINT BytesToTransfer,\r
- IN OUT PNDIS_PACKET Packet,\r
- OUT PUINT BytesTransferred);\r
-\r
-VOID\r
-EXPIMP\r
-NdisWriteConfiguration(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN PNDIS_STRING Keyword,\r
- IN PNDIS_CONFIGURATION_PARAMETER *ParameterValue);\r
-\r
-/*\r
-VOID\r
-EXPIMP\r
-NdisWriteErrorLogEntry(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN NDIS_ERROR_CODE ErrorCode,\r
- IN ULONG NumberOfErrorValues,\r
- IN ULONG ...);\r
-*/\r
-\r
-\r
-\r
-/*\r
- * VOID NdisStallExecution(\r
- * IN UINT MicrosecondsToStall)\r
- */\r
-#define NdisStallExecution(MicroSecondsToStall) \\r
- KeStallExecutionProcessor(MicroSecondsToStall)\r
-\r
-\r
-\r
-/* NDIS helper macros */\r
-\r
-/*\r
- * NDIS_INIT_FUNCTION(FunctionName)\r
- */\r
-#define NDIS_INIT_FUNCTION(FunctionName) \\r
- alloc_text(init, FunctionName)\r
-\r
-/*\r
- * NDIS_PAGABLE_FUNCTION(FunctionName) \r
- */\r
-#define NDIS_PAGABLE_FUNCTION(FunctionName) \\r
- alloc_text(page, FunctionName)\r
-\r
-\r
-\r
-/* NDIS 4.0 extensions */\r
-\r
-#ifdef NDIS40\r
-\r
-VOID\r
-EXPIMP\r
-NdisMFreeSharedMemory(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN ULONG Length,\r
- IN BOOLEAN Cached,\r
- IN PVOID VirtualAddress,\r
- IN NDIS_PHYSICAL_ADDRESS PhysicalAddress);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMWanIndicateReceive(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN NDIS_HANDLE NdisLinkContext,\r
- IN PUCHAR PacketBuffer,\r
- IN UINT PacketSize);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMWanIndicateReceiveComplete(\r
- IN NDIS_HANDLE MiniportAdapterHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMWanSendComplete(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN PNDIS_WAN_PACKET Packet,\r
- IN NDIS_STATUS Status);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisPciAssignResources(\r
- IN NDIS_HANDLE NdisMacHandle,\r
- IN NDIS_HANDLE NdisWrapperHandle,\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN ULONG SlotNumber,\r
- OUT PNDIS_RESOURCE_LIST *AssignedResources);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReadEisaSlotInformationEx(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- OUT PUINT SlotNumber,\r
- OUT PNDIS_EISA_FUNCTION_INFORMATION *EisaData,\r
- OUT PUINT NumberOfFunctions);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReadMcaPosInformation(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE WrapperConfigurationContext,\r
- IN PUINT ChannelNumber,\r
- OUT PNDIS_MCA_POS_DATA McaData);\r
-\r
-#endif /* NDIS40 */\r
-\r
-\r
-\r
-/* NDIS 5.0 extensions */\r
-\r
-#ifdef NDIS50\r
-\r
-VOID\r
-EXPIMP\r
-NdisAcquireReadWriteLock(\r
- IN PNDIS_RW_LOCK Lock,\r
- IN BOOLEAN fWrite,\r
- IN PLOCK_STATE LockState);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisAllocateMemoryWithTag(\r
- OUT PVOID *VirtualAddress,\r
- IN UINT Length,\r
- IN ULONG Tag);\r
-\r
-VOID\r
-EXPIMP\r
-NdisAllocatePacketPoolEx(\r
- OUT PNDIS_STATUS Status,\r
- OUT PNDIS_HANDLE PoolHandle,\r
- IN UINT NumberOfDescriptors,\r
- IN UINT NumberOfOverflowDescriptors,\r
- IN UINT ProtocolReservedLength);\r
-\r
-ULONG\r
-EXPIMP\r
-NdisBufferLength(\r
- IN PNDIS_BUFFER Buffer);\r
-\r
-PVOID\r
-EXPIMP\r
-NdisBufferVirtualAddress(\r
- IN PNDIS_BUFFER Buffer);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCompletePnPEvent(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN PNET_PNP_EVENT NetPnPEvent);\r
-\r
-VOID\r
-EXPIMP\r
-NdisConvertStringToAtmAddress(\r
- OUT PNDIS_STATUS Status,\r
- IN PNDIS_STRING String,\r
- OUT PATM_ADDRESS AtmAddress);\r
-\r
-VOID\r
-EXPIMP\r
-NdisGetCurrentProcessorCounts(\r
- OUT PULONG pIdleCount,\r
- OUT PULONG pKernelAndUser,\r
- OUT PULONG pIndex);\r
-\r
-VOID\r
-EXPIMP\r
-NdisGetDriverHandle(\r
- IN PNDIS_HANDLE NdisBindingHandle,\r
- OUT PNDIS_HANDLE NdisDriverHandle);\r
-\r
-PNDIS_PACKET\r
-EXPIMP\r
-NdisGetReceivedPacket(\r
- IN PNDIS_HANDLE NdisBindingHandle,\r
- IN PNDIS_HANDLE MacContext);\r
-\r
-VOID\r
-EXPIMP\r
-NdisGetSystemUptime(\r
- OUT PULONG pSystemUpTime);\r
-\r
-VOID\r
-EXPIMP\r
-NdisInitializeReadWriteLock(\r
- IN PNDIS_RW_LOCK Lock);\r
-\r
-LONG\r
-EXPIMP\r
-NdisInterlockedDecrement(\r
- IN PLONG Addend);\r
-\r
-LONG\r
-EXPIMP\r
-NdisInterlockedIncrement(\r
- IN PLONG Addend);\r
-\r
-PSINGLE_LIST_ENTRY\r
-EXPIMP\r
-NdisInterlockedPopEntrySList(\r
- IN PSLIST_HEADER ListHead,\r
- IN PKSPIN_LOCK Lock);\r
-\r
-PSINGLE_LIST_ENTRY\r
-EXPIMP\r
-NdisInterlockedPushEntrySList(\r
- IN PSLIST_HEADER ListHead,\r
- IN PSINGLE_LIST_ENTRY ListEntry,\r
- IN PKSPIN_LOCK Lock);\r
-\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMDeregisterDevice(\r
- IN NDIS_HANDLE NdisDeviceHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMGetDeviceProperty(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN OUT PDEVICE_OBJECT *PhysicalDeviceObject OPTIONAL,\r
- IN OUT PDEVICE_OBJECT *FunctionalDeviceObject OPTIONAL,\r
- IN OUT PDEVICE_OBJECT *NextDeviceObject OPTIONAL,\r
- IN OUT PCM_RESOURCE_LIST *AllocatedResources OPTIONAL,\r
- IN OUT PCM_RESOURCE_LIST *AllocatedResourcesTranslated OPTIONAL);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMInitializeScatterGatherDma(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN BOOLEAN Dma64BitAddresses,\r
- IN ULONG MaximumPhysicalMapping);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMPromoteMiniport(\r
- IN NDIS_HANDLE MiniportAdapterHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMQueryAdapterInstanceName(\r
- OUT PNDIS_STRING AdapterInstanceName,\r
- IN NDIS_HANDLE MiniportAdapterHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMRegisterDevice(\r
- IN NDIS_HANDLE NdisWrapperHandle,\r
- IN PNDIS_STRING DeviceName,\r
- IN PNDIS_STRING SymbolicName,\r
- IN PDRIVER_DISPATCH MajorFunctions[],\r
- OUT PDEVICE_OBJECT *pDeviceObject,\r
- OUT NDIS_HANDLE *NdisDeviceHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMRegisterUnloadHandler(\r
- IN NDIS_HANDLE NdisWrapperHandle,\r
- IN PDRIVER_UNLOAD UnloadHandler);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMRemoveMiniport(\r
- IN NDIS_HANDLE MiniportAdapterHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMSetMiniportSecondary(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN NDIS_HANDLE PrimaryMiniportAdapterHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisOpenConfigurationKeyByIndex(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE ConfigurationHandle,\r
- IN ULONG Index,\r
- OUT PNDIS_STRING KeyName,\r
- OUT PNDIS_HANDLE KeyHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisOpenConfigurationKeyByName(\r
- OUT PNDIS_STATUS Status,\r
- IN NDIS_HANDLE ConfigurationHandle,\r
- IN PNDIS_STRING SubKeyName,\r
- OUT PNDIS_HANDLE SubKeyHandle);\r
-\r
-UINT\r
-EXPIMP\r
-NdisPacketPoolUsage(\r
- IN NDIS_HANDLE PoolHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisQueryAdapterInstanceName(\r
- OUT PNDIS_STRING AdapterInstanceName,\r
- IN NDIS_HANDLE NdisBindingHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisQueryBufferSafe(\r
- IN PNDIS_BUFFER Buffer,\r
- OUT PVOID *VirtualAddress OPTIONAL,\r
- OUT PUINT Length,\r
- IN UINT Priority);\r
-\r
-ULONG\r
-EXPIMP\r
-NdisReadPcmciaAttributeMemory(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN ULONG Offset,\r
- IN PVOID Buffer,\r
- IN ULONG Length);\r
-\r
-VOID\r
-EXPIMP\r
-NdisReleaseReadWriteLock(\r
- IN PNDIS_RW_LOCK Lock,\r
- IN PLOCK_STATE LockState);\r
-\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisWriteEventLogEntry(\r
- IN PVOID LogHandle,\r
- IN NDIS_STATUS EventCode,\r
- IN ULONG UniqueEventValue,\r
- IN USHORT NumStrings,\r
- IN PVOID StringsList OPTIONAL,\r
- IN ULONG DataSize,\r
- IN PVOID Data OPTIONAL);\r
-\r
-ULONG\r
-EXPIMP\r
-NdisWritePcmciaAttributeMemory(\r
- IN NDIS_HANDLE NdisAdapterHandle,\r
- IN ULONG Offset,\r
- IN PVOID Buffer,\r
- IN ULONG Length);\r
-\r
-\r
-/* Connectionless services */\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClAddParty(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN NDIS_HANDLE ProtocolPartyContext,\r
- IN OUT PCO_CALL_PARAMETERS CallParameters,\r
- OUT PNDIS_HANDLE NdisPartyHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClCloseAddressFamily(\r
- IN NDIS_HANDLE NdisAfHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClCloseCall(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- IN PVOID Buffer OPTIONAL,\r
- IN UINT Size);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClDeregisterSap(\r
- IN NDIS_HANDLE NdisSapHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClDropParty(\r
- IN NDIS_HANDLE NdisPartyHandle,\r
- IN PVOID Buffer OPTIONAL,\r
- IN UINT Size);\r
-\r
-VOID\r
-EXPIMP\r
-NdisClIncomingCallComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClMakeCall(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN OUT PCO_CALL_PARAMETERS CallParameters,\r
- IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,\r
- OUT PNDIS_HANDLE NdisPartyHandle OPTIONAL);\r
-\r
-NDIS_STATUS \r
-EXPIMP\r
-NdisClModifyCallQoS(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClOpenAddressFamily(\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN PCO_ADDRESS_FAMILY AddressFamily,\r
- IN NDIS_HANDLE ProtocolAfContext,\r
- IN PNDIS_CLIENT_CHARACTERISTICS ClCharacteristics,\r
- IN UINT SizeOfClCharacteristics,\r
- OUT PNDIS_HANDLE NdisAfHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisClRegisterSap(\r
- IN NDIS_HANDLE NdisAfHandle,\r
- IN NDIS_HANDLE ProtocolSapContext,\r
- IN PCO_SAP Sap,\r
- OUT PNDIS_HANDLE NdisSapHandle);\r
-\r
-\r
-/* Call Manager services */\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCmActivateVc(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN OUT PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmAddPartyComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisPartyHandle,\r
- IN NDIS_HANDLE CallMgrPartyContext OPTIONAL,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmCloseAddressFamilyComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisAfHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmCloseCallComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCmDeactivateVc(\r
- IN NDIS_HANDLE NdisVcHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmDeregisterSapComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisSapHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmDispatchCallConnected(\r
- IN NDIS_HANDLE NdisVcHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCmDispatchIncomingCall(\r
- IN NDIS_HANDLE NdisSapHandle,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmDispatchIncomingCallQoSChange(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmDispatchIncomingCloseCall(\r
- IN NDIS_STATUS CloseStatus,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PVOID Buffer OPTIONAL,\r
- IN UINT Size);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmDispatchIncomingDropParty(\r
- IN NDIS_STATUS DropStatus,\r
- IN NDIS_HANDLE NdisPartyHandle,\r
- IN PVOID Buffer OPTIONAL,\r
- IN UINT Size);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmDropPartyComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisPartyHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmMakeCallComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- IN NDIS_HANDLE CallMgrPartyContext OPTIONAL,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmModifyCallQoSComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmOpenAddressFamilyComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisAfHandle,\r
- IN NDIS_HANDLE CallMgrAfContext);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCmRegisterAddressFamily(\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN PCO_ADDRESS_FAMILY AddressFamily,\r
- IN PNDIS_CALL_MANAGER_CHARACTERISTICS CmCharacteristics,\r
- IN UINT SizeOfCmCharacteristics);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCmRegisterSapComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisSapHandle,\r
- IN NDIS_HANDLE CallMgrSapContext);\r
-\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMCmActivateVc(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMCmCreateVc(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN NDIS_HANDLE NdisAfHandle,\r
- IN NDIS_HANDLE MiniportVcContext,\r
- OUT PNDIS_HANDLE NdisVcHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMCmDeactivateVc(\r
- IN NDIS_HANDLE NdisVcHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMCmDeleteVc(\r
- IN NDIS_HANDLE NdisVcHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMCmRegisterAddressFamily(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN PCO_ADDRESS_FAMILY AddressFamily,\r
- IN PNDIS_CALL_MANAGER_CHARACTERISTICS CmCharacteristics,\r
- IN UINT SizeOfCmCharacteristics);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisMCmRequest(\r
- IN NDIS_HANDLE NdisAfHandle,\r
- IN NDIS_HANDLE NdisVcHandle OPTIONAL,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- IN OUT PNDIS_REQUEST NdisRequest);\r
-\r
-\r
-/* Connection-oriented services */\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCoCreateVc(\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN NDIS_HANDLE NdisAfHandle OPTIONAL,\r
- IN NDIS_HANDLE ProtocolVcContext,\r
- IN OUT PNDIS_HANDLE NdisVcHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCoDeleteVc(\r
- IN NDIS_HANDLE NdisVcHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisCoRequest(\r
- IN NDIS_HANDLE NdisBindingHandle,\r
- IN NDIS_HANDLE NdisAfHandle OPTIONAL,\r
- IN NDIS_HANDLE NdisVcHandle OPTIONAL,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- IN OUT PNDIS_REQUEST NdisRequest);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCoRequestComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisAfHandle,\r
- IN NDIS_HANDLE NdisVcHandle OPTIONAL,\r
- IN NDIS_HANDLE NdisPartyHandle OPTIONAL,\r
- IN PNDIS_REQUEST NdisRequest);\r
-\r
-VOID\r
-EXPIMP\r
-NdisCoSendPackets(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PPNDIS_PACKET PacketArray,\r
- IN UINT NumberOfPackets);\r
-\r
-\r
-VOID\r
-EXPIMP\r
-NdisMCoActivateVcComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PCO_CALL_PARAMETERS CallParameters);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMCoDeactivateVcComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMCoIndicateReceivePacket(\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PPNDIS_PACKET PacketArray,\r
- IN UINT NumberOfPackets);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMCoIndicateStatus(\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN NDIS_HANDLE NdisVcHandle OPTIONAL,\r
- IN NDIS_STATUS GeneralStatus,\r
- IN PVOID StatusBuffer OPTIONAL,\r
- IN ULONG StatusBufferSize);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMCoReceiveComplete(\r
- IN NDIS_HANDLE MiniportAdapterHandle);\r
-\r
-VOID\r
-EXPIMP\r
-NdisMCoRequestComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE MiniportAdapterHandle,\r
- IN PNDIS_REQUEST Request);\r
-\r
-VOID \r
-EXPIMP\r
-NdisMCoSendComplete(\r
- IN NDIS_STATUS Status,\r
- IN NDIS_HANDLE NdisVcHandle,\r
- IN PNDIS_PACKET Packet);\r
-\r
-\r
-/* NDIS 5.0 extensions for intermediate drivers */\r
-\r
-VOID\r
-EXPIMP\r
-NdisIMAssociateMiniport(\r
- IN NDIS_HANDLE DriverHandle,\r
- IN NDIS_HANDLE ProtocolHandle);\r
-\r
-NDIS_STATUS \r
-EXPIMP\r
-NdisIMCancelInitializeDeviceInstance(\r
- IN NDIS_HANDLE DriverHandle,\r
- IN PNDIS_STRING DeviceInstance);\r
-\r
-VOID\r
-EXPIMP\r
-NdisIMCopySendCompletePerPacketInfo(\r
- IN PNDIS_PACKET DstPacket,\r
- IN PNDIS_PACKET SrcPacket);\r
-\r
-VOID\r
-EXPIMP\r
-NdisIMCopySendPerPacketInfo(\r
- IN PNDIS_PACKET DstPacket,\r
- IN PNDIS_PACKET SrcPacket);\r
-\r
-VOID\r
-EXPIMP\r
-NdisIMDeregisterLayeredMiniport(\r
- IN NDIS_HANDLE DriverHandle);\r
-\r
-NDIS_HANDLE\r
-EXPIMP\r
-NdisIMGetBindingContext(\r
- IN NDIS_HANDLE NdisBindingHandle);\r
-\r
-NDIS_HANDLE\r
-EXPIMP\r
-NdisIMGetDeviceContext(\r
- IN NDIS_HANDLE MiniportAdapterHandle);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-NdisIMInitializeDeviceInstanceEx(\r
- IN NDIS_HANDLE DriverHandle,\r
- IN PNDIS_STRING DriverInstance,\r
- IN NDIS_HANDLE DeviceContext OPTIONAL);\r
-\r
-#endif /* NDIS50 */\r
-\r
-\r
-\r
-/* NDIS structures available only to miniport drivers */\r
-\r
-#if defined(NDIS_WRAPPER) || defined(NDIS_MINIPORT_DRIVER)\r
-\r
-/* Obsolete technology specific defines */\r
-\r
-#define DECLARE_UNKNOWN_STRUCT(BaseName) \\r
- typedef struct _##BaseName BaseName, *P##BaseName;\r
-\r
-#define DECLARE_UNKNOWN_PROTOTYPE(Name) \\r
- typedef VOID (*##Name)(VOID);\r
-\r
-\r
-/* ARCnet */\r
-\r
-DECLARE_UNKNOWN_STRUCT(ARC_FILTER)\r
-\r
-\r
-VOID\r
-EXPIMP\r
-ArcFilterDprIndicateReceive(\r
- IN PARC_FILTER Filter,\r
- IN PUCHAR pRawHeader,\r
- IN PUCHAR pData,\r
- IN UINT Length);\r
-\r
-VOID\r
-EXPIMP\r
-ArcFilterDprIndicateReceiveComplete(\r
- IN PARC_FILTER Filter);\r
-\r
-\r
-/* Ethernet */\r
-\r
-#define ETH_LENGTH_OF_ADDRESS 6\r
-\r
-DECLARE_UNKNOWN_STRUCT(ETH_FILTER)\r
-\r
-DECLARE_UNKNOWN_PROTOTYPE(ETH_ADDRESS_CHANGE)\r
-DECLARE_UNKNOWN_PROTOTYPE(ETH_FILTER_CHANGE)\r
-DECLARE_UNKNOWN_PROTOTYPE(ETH_DEFERRED_CLOSE)\r
-\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-EthChangeFilterAddresses(\r
- IN PETH_FILTER Filter,\r
- IN NDIS_HANDLE NdisFilterHandle,\r
- IN PNDIS_REQUEST NdisRequest,\r
- IN UINT AddressCount,\r
- IN CHAR Addresses[] [ETH_LENGTH_OF_ADDRESS],\r
- IN BOOLEAN Set);\r
-\r
-BOOLEAN\r
-EXPIMP\r
-EthCreateFilter(\r
- IN UINT MaximumMulticastAddresses,\r
- IN ETH_ADDRESS_CHANGE AddressChangeAction,\r
- IN ETH_FILTER_CHANGE FilterChangeAction,\r
- IN ETH_DEFERRED_CLOSE CloseAction,\r
- IN PUCHAR AdapterAddress,\r
- IN PNDIS_SPIN_LOCK Lock,\r
- OUT PETH_FILTER *Filter);\r
-\r
-VOID\r
-EXPIMP\r
-EthDeleteFilter(\r
- IN PETH_FILTER Filter);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-EthDeleteFilterOpenAdapter(\r
- IN PETH_FILTER Filter,\r
- IN NDIS_HANDLE NdisFilterHandle,\r
- IN PNDIS_REQUEST NdisRequest);\r
-\r
-NDIS_STATUS\r
-EXPIMP\r
-EthFilterAdjust(\r
- IN PETH_FILTER Filter,\r
- IN NDIS_HANDLE NdisFilterHandle,\r
- IN PNDIS_REQUEST NdisRequest,\r
- IN UINT FilterClasses,\r
- IN BOOLEAN Set);\r
-\r
-VOID\r
-EXPIMP\r
-EthFilterIndicateReceive(\r
- IN PETH_FILTER Filter,\r
- IN NDIS_HANDLE MacReceiveContext,\r
- IN PCHAR Address,\r
- IN PVOID HeaderBuffer,\r
- IN UINT HeaderBufferSize,\r
- IN PVOID LookaheadBuffer,\r
- IN UINT LookaheadBufferSize,\r
- IN UINT PacketSize);