Sync with trunk (r48545)
[reactos.git] / drivers / network / ndis / include / miniport.h
index 2302ddb..ad4de2a 100644 (file)
@@ -5,8 +5,7 @@
  * PURPOSE:     Definitions for routines used by NDIS miniport drivers
  */
 
-#ifndef __MINIPORT_H
-#define __MINIPORT_H
+#pragma once
 
 #include <ndis.h>
 #include <ndissys.h>
@@ -28,10 +27,21 @@ typedef struct _NDIS_M_DRIVER_BLOCK {
     PDRIVER_OBJECT                  DriverObject;             /* Driver object of miniport */
     LIST_ENTRY                      DeviceList;               /* Adapters created by miniport */
     PUNICODE_STRING                 RegistryPath;             /* SCM Registry key */
+#if !defined(_MSC_VER) && defined(_NDIS_)
+} NDIS_M_DRIVER_BLOCK_COMPATIBILITY_HACK_DONT_USE;
+#else
 } NDIS_M_DRIVER_BLOCK, *PNDIS_M_DRIVER_BLOCK;
+#endif
+
+/* There must be some defined struct to do this... */
+typedef struct _NDIS_M_DEVICE_BLOCK {
+    PDEVICE_OBJECT DeviceObject;
+    PNDIS_STRING   SymbolicName;
+} NDIS_M_DEVICE_BLOCK, *PNDIS_M_DEVICE_BLOCK;
 
 /* resources allocated on behalf on the miniport */
-#define MINIPORT_RESOURCE_TYPE_MEMORY 0
+#define MINIPORT_RESOURCE_TYPE_REGISTRY_DATA 0
+#define MINIPORT_RESOURCE_TYPE_MEMORY        1
 typedef struct _MINIPORT_RESOURCE {
     LIST_ENTRY     ListEntry;
     ULONG          ResourceType;
@@ -54,11 +64,14 @@ typedef struct _MINIPORT_BUGCHECK_CONTEXT {
 
 /* a miniport's shared memory */
 typedef struct _MINIPORT_SHARED_MEMORY {
-    PDMA_ADAPTER      AdapterObject;
-    ULONG             Length;
-    PHYSICAL_ADDRESS  PhysicalAddress;
-    PVOID             VirtualAddress;
-    BOOLEAN           Cached;
+    PDMA_ADAPTER          AdapterObject;
+    ULONG                 Length;
+    PHYSICAL_ADDRESS      PhysicalAddress;
+    PVOID                 VirtualAddress;
+    BOOLEAN               Cached;
+    PNDIS_MINIPORT_BLOCK  Adapter;
+    PVOID                 Context;
+    PKEVENT               Event;
 } MINIPORT_SHARED_MEMORY, *PMINIPORT_SHARED_MEMORY;
 
 /* A structure of WrapperConfigurationContext (not compatible with the
@@ -67,6 +80,7 @@ typedef struct _NDIS_WRAPPER_CONTEXT {
     HANDLE            RegistryHandle;
     PDEVICE_OBJECT    DeviceObject;
     ULONG             BusNumber;
+    ULONG             SlotNumber;
 } NDIS_WRAPPER_CONTEXT, *PNDIS_WRAPPER_CONTEXT;
 
 #define GET_MINIPORT_DRIVER(Handle)((PNDIS_M_DRIVER_BLOCK)Handle)
@@ -75,7 +89,6 @@ typedef struct _NDIS_WRAPPER_CONTEXT {
 typedef struct _LOGICAL_ADAPTER
 {
     NDIS_MINIPORT_BLOCK         NdisMiniportBlock;      /* NDIS defined fields */
-    BOOLEAN                     MiniportBusy;           /* A MiniportXxx routine is executing */
     PNDIS_MINIPORT_WORK_ITEM    WorkQueueHead;          /* Head of work queue */
     PNDIS_MINIPORT_WORK_ITEM    WorkQueueTail;          /* Tail of work queue */
     LIST_ENTRY                  ListEntry;              /* Entry on global list */
@@ -84,8 +97,6 @@ typedef struct _LOGICAL_ADAPTER
     ULONG                       MediumHeaderSize;       /* Size of medium header */
     HARDWARE_ADDRESS            Address;                /* Hardware address of adapter */
     ULONG                       AddressLength;          /* Length of hardware address */
-    PUCHAR                      LookaheadBuffer;        /* Pointer to lookahead buffer */
-    ULONG                       LookaheadLength;        /* Length of lookahead buffer */
     PMINIPORT_BUGCHECK_CONTEXT  BugcheckContext;        /* Adapter's shutdown handler */
 } LOGICAL_ADAPTER, *PLOGICAL_ADAPTER;
 
@@ -97,7 +108,7 @@ extern LIST_ENTRY AdapterListHead;
 extern KSPIN_LOCK AdapterListLock;
 
 
-#ifdef DBG
+#if DBG
 VOID
 MiniDisplayPacket(
     PNDIS_PACKET Packet);
@@ -130,12 +141,13 @@ MiniQueryInformation(
     PVOID               Buffer,
     PULONG              BytesWritten);
 
-NDIS_STATUS
+VOID
 FASTCALL
 MiniQueueWorkItem(
     PLOGICAL_ADAPTER    Adapter,
     NDIS_WORK_ITEM_TYPE WorkItemType,
-    PVOID               WorkItemContext);
+    PVOID               WorkItemContext,
+    BOOLEAN             Top);
 
 NDIS_STATUS
 FASTCALL
@@ -161,7 +173,9 @@ NdisStartDevices();
 
 VOID
 NTAPI
-MiniportWorker(IN PVOID WorkItem);
+MiniportWorker(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN PVOID WorkItem);
 
 VOID NTAPI
 MiniSendComplete(
@@ -169,7 +183,17 @@ MiniSendComplete(
     IN  PNDIS_PACKET    Packet,
     IN  NDIS_STATUS     Status);
 
-#endif /* __MINIPORT_H */
+BOOLEAN
+MiniIsBusy(
+    PLOGICAL_ADAPTER Adapter,
+    NDIS_WORK_ITEM_TYPE Type);
+
+NDIS_STATUS
+MiniReset(
+    PLOGICAL_ADAPTER Adapter);
 
-/* EOF */
+VOID
+MiniDoAddressingReset(
+    PLOGICAL_ADAPTER Adapter);
 
+/* EOF */