#ifndef __NDISSYS_H
#define __NDISSYS_H
-#define NDIS50 1 /* Use NDIS 5.0 structures by default */
-
-#include <ddk/ntddk.h>
-#include <ddk/ndis.h>
+typedef unsigned long NDIS_STATS;
+
+#include <ntifs.h>
+#include <ndis.h>
+#include <xfilter.h>
+#include <afilter.h>
+#include <atm.h>
+
+#if _MSC_VER
+/* FIXME: These were removed and are no longer used! */
+#define NdisWorkItemSendLoopback NdisWorkItemReserved
+#else /* _MSC_VER */
+/* FIXME: We miss the ATM headers. */
+typedef struct _ATM_ADDRESS *PATM_ADDRESS;
+#endif /* _MSC_VER */
+
+struct _ADAPTER_BINDING;
+
+typedef struct _NDISI_PACKET_POOL {
+ NDIS_SPIN_LOCK SpinLock;
+ struct _NDIS_PACKET *FreeList;
+ UINT PacketLength;
+ UCHAR Buffer[1];
+} NDISI_PACKET_POOL, * PNDISI_PACKET_POOL;
+
+#include "miniport.h"
+#include "protocol.h"
#include <debug.h>
-#ifdef DBG
-
-#define DEBUG_REFCHECK(Object) { \
- if ((Object)->RefCount <= 0) { \
- NDIS_DbgPrint(MIN_TRACE, ("Object at (0x%X) has invalid reference count (%d).\n", \
- (Object), (Object)->RefCount)); \
- } \
-}
-
-#else
-
-#define DEBUG_REFCHECK(Object)
-
+/* Exported functions */
+#ifndef EXPORT
+#define EXPORT NTAPI
#endif
-
-/*
- * VOID ReferenceObject(
- * PVOID Object)
- */
-#define ReferenceObject(Object) \
-{ \
- DEBUG_REFCHECK(Object); \
- NDIS_DbgPrint(DEBUG_REFCOUNT, ("Referencing object at (0x%X). RefCount (%d).\n", \
- (Object), (Object)->RefCount)); \
- \
- InterlockedIncrement(&((Object)->RefCount)); \
-}
-
-/*
- * VOID DereferenceObject(
- * PVOID Object)
- */
-#define DereferenceObject(Object) \
-{ \
- DEBUG_REFCHECK(Object); \
- NDIS_DbgPrint(DEBUG_REFCOUNT, ("Dereferencing object at (0x%X). RefCount (%d).\n", \
- (Object), (Object)->RefCount)); \
- \
- if (InterlockedDecrement(&((Object)->RefCount)) == 0) \
- PoolFreeBuffer(Object); \
-}
-
+#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
+#define NDIS_TAG 0x4e4d4953
#define MIN(value1, value2) \
((value1 < value2)? value1 : value2)