[HEADERS]
[reactos.git] / reactos / include / ddk / ndis.h
index 866e618..b08fb68 100644 (file)
 #ifndef __NDIS_H
 #define __NDIS_H
 
+/* Helper macro to enable gcc's extension.  */
+#ifndef __GNU_EXTENSION
+#ifdef __GNUC__
+#define __GNU_EXTENSION __extension__
+#else
+#define __GNU_EXTENSION
+#endif
+#endif
+
 #include "ntddk.h"
 #include "ntddndis.h"
 #include "netpnp.h"
@@ -47,7 +56,7 @@ extern "C" {
 #endif
 
 #if defined(NDIS_WRAPPER)
-  #define NDISAPI DECLSPEC_EXPORT
+  #define NDISAPI
 #else
   #define NDISAPI DECLSPEC_IMPORT
 #endif
@@ -238,8 +247,8 @@ typedef union _NDIS_RW_LOCK_REFCOUNT {
 } NDIS_RW_LOCK_REFCOUNT;
 
 typedef struct _NDIS_RW_LOCK {
-  union {
-    struct {
+  __GNU_EXTENSION union {
+    __GNU_EXTENSION struct {
       KSPIN_LOCK  SpinLock;
       PVOID  Context;
     };
@@ -258,8 +267,8 @@ typedef struct _LOCK_STATE {
 
 /* Timer */
 
-typedef VOID DDKAPI
-(*PNDIS_TIMER_FUNCTION)(
+typedef VOID
+(DDKAPI *PNDIS_TIMER_FUNCTION)(
        IN PVOID  SystemSpecific1,
        IN PVOID  FunctionContext,
        IN PVOID  SystemSpecific2,
@@ -307,25 +316,6 @@ typedef struct _GEN_GET_NETCARD_TIME {
   ULONGLONG  ReadTime;
 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
 
-/* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */
-typedef enum _NDIS_MEDIUM {
-  NdisMedium802_3,
-  NdisMedium802_5,
-  NdisMediumFddi,
-  NdisMediumWan,
-  NdisMediumLocalTalk,
-  NdisMediumDix,
-  NdisMediumArcnetRaw,
-  NdisMediumArcnet878_2,
-  NdisMediumAtm,
-  NdisMediumWirelessWan,
-  NdisMediumIrda,
-  NdisMediumBpc,
-  NdisMediumCoWan,
-  NdisMedium1394,
-  NdisMediumMax
-} NDIS_MEDIUM, *PNDIS_MEDIUM;
-
 /* NDIS packet filter bits (OID_GEN_CURRENT_PACKET_FILTER) */
 #define NDIS_PACKET_TYPE_DIRECTED               0x00000001
 #define NDIS_PACKET_TYPE_MULTICAST              0x00000002
@@ -399,16 +389,16 @@ typedef struct _NDIS_PACKET_PRIVATE {
 
 typedef struct _NDIS_PACKET {
   NDIS_PACKET_PRIVATE  Private;
-  union {
-    struct {
+  __GNU_EXTENSION union {
+    __GNU_EXTENSION struct {
       UCHAR  MiniportReserved[2 * sizeof(PVOID)];
       UCHAR  WrapperReserved[2 * sizeof(PVOID)];
     };
-    struct {
+    __GNU_EXTENSION struct {
       UCHAR  MiniportReservedEx[3 * sizeof(PVOID)];
       UCHAR  WrapperReservedEx[sizeof(PVOID)];
     };
-    struct {
+    __GNU_EXTENSION struct {
       UCHAR  MacReserved[4 * sizeof(PVOID)];
     };
   };
@@ -451,6 +441,10 @@ typedef struct _NDIS_PM_PACKET_PATTERN {
   ULONG  PatternFlags;
 } NDIS_PM_PACKET_PATTERN,  *PNDIS_PM_PACKET_PATTERN;
 
+typedef struct _NDIS_PACKET_STACK {
+  ULONG_PTR IMReserved[2];
+  ULONG_PTR NdisReserved[4];
+} NDIS_PACKET_STACK, *PNDIS_PACKET_STACK;
 
 /* Request types used by NdisRequest */
 typedef enum _NDIS_REQUEST_TYPE {
@@ -489,7 +483,7 @@ typedef struct _NDIS_REQUEST {
  } DATA;
 #if (defined(NDIS50) || defined(NDIS51))
   UCHAR  NdisReserved[9 * sizeof(PVOID)];
-  union {
+  __GNU_EXTENSION union {
     UCHAR  CallMgrReserved[2 * sizeof(PVOID)];
     UCHAR  ProtocolReserved[2 * sizeof(PVOID)];
   };
@@ -631,10 +625,23 @@ typedef struct _NDIS_WAN_LINE_UP {
 } NDIS_WAN_LINE_UP, *PNDIS_WAN_LINE_UP;
 
 
-typedef VOID DDKAPI
-(*ADAPTER_SHUTDOWN_HANDLER)(
+typedef VOID
+(DDKAPI *ADAPTER_SHUTDOWN_HANDLER)(
   IN PVOID  ShutdownContext);
 
+typedef NTSTATUS
+(DDKAPI *TDI_REGISTER_CALLBACK)(
+    IN  PUNICODE_STRING         DeviceName,
+    OUT HANDLE*                 TdiHandle);
+
+typedef NTSTATUS
+(DDKAPI *TDI_PNP_HANDLER)(
+    IN  PUNICODE_STRING         UpperComponent,
+    IN  PUNICODE_STRING         LowerComponent,
+    IN  PUNICODE_STRING         BindList,
+    IN  PVOID                   ReconfigBuffer,
+    IN  UINT                    ReconfigBufferSize,
+    IN  UINT                    Operation);
 
 typedef struct _OID_LIST    OID_LIST, *POID_LIST;
 
@@ -833,12 +840,6 @@ typedef struct _NDIS_PACKET_EXTENSION {
   PVOID  NdisPacketInfo[MaxPerPacketInfo];
 } NDIS_PACKET_EXTENSION, *PNDIS_PACKET_EXTENSION;
 
-typedef struct _NDIS_OBJECT_HEADER {
-  UCHAR  Type;
-  UCHAR  Revision;
-  USHORT  Size;
-} NDIS_OBJECT_HEADER, *PNDIS_OBJECT_HEADER;
-
 typedef struct _NDIS_GENERIC_OBJECT {
   NDIS_OBJECT_HEADER  Header;
   PVOID  Caller;
@@ -965,6 +966,15 @@ typedef struct _NDIS_ENCAPSULATION_FORMAT {
   ULONG  EncapsulationHeaderSize;
 } NDIS_ENCAPSULATION_FORMAT, *PNDIS_ENCAPSULATION_FORMAT;
 
+typedef struct _NDIS_TASK_OFFLOAD_HEADER
+{
+    ULONG       Version;
+    ULONG       Size;
+    ULONG       Reserved;
+    ULONG       OffsetFirstTask;
+    NDIS_ENCAPSULATION_FORMAT  EncapsulationFormat;
+} NDIS_TASK_OFFLOAD_HEADER, *PNDIS_TASK_OFFLOAD_HEADER;
+
 typedef struct _NDIS_TASK_TCP_IP_CHECKSUM {
   struct {
     ULONG  IpOptionsSupported:1;
@@ -1046,97 +1056,97 @@ typedef struct _WAN_CO_LINKPARAMS {
 
 /* Call Manager */
 
-typedef VOID DDKAPI
-(*CM_ACTIVATE_VC_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CM_ACTIVATE_VC_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_ADD_PARTY_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_ADD_PARTY_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
   IN NDIS_HANDLE  NdisPartyHandle,
   OUT PNDIS_HANDLE  CallMgrPartyContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_CLOSE_AF_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_CLOSE_AF_HANDLER)(
   IN NDIS_HANDLE  CallMgrAfContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_CLOSE_CALL_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_CLOSE_CALL_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN NDIS_HANDLE  CallMgrPartyContext  OPTIONAL,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_DEREG_SAP_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_DEREG_SAP_HANDLER)(
   IN NDIS_HANDLE  CallMgrSapContext);
 
-typedef VOID DDKAPI
-(*CM_DEACTIVATE_VC_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CM_DEACTIVATE_VC_COMPLETE_HANDLER)(
        IN NDIS_STATUS  Status,
        IN NDIS_HANDLE  CallMgrVcContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_DROP_PARTY_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_DROP_PARTY_HANDLER)(
   IN NDIS_HANDLE  CallMgrPartyContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
-typedef VOID DDKAPI
-(*CM_INCOMING_CALL_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CM_INCOMING_CALL_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_MAKE_CALL_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_MAKE_CALL_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
   IN NDIS_HANDLE  NdisPartyHandle      OPTIONAL,
   OUT PNDIS_HANDLE  CallMgrPartyContext  OPTIONAL);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_MODIFY_CALL_QOS_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_MODIFY_CALL_QOS_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_OPEN_AF_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_OPEN_AF_HANDLER)(
        IN NDIS_HANDLE  CallMgrBindingContext,
        IN PCO_ADDRESS_FAMILY  AddressFamily,
        IN NDIS_HANDLE  NdisAfHandle,
        OUT PNDIS_HANDLE  CallMgrAfContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CM_REG_SAP_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CM_REG_SAP_HANDLER)(
   IN NDIS_HANDLE  CallMgrAfContext,
   IN PCO_SAP  Sap,
   IN NDIS_HANDLE  NdisSapHandle,
   OUT  PNDIS_HANDLE  CallMgrSapContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CO_CREATE_VC_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CO_CREATE_VC_HANDLER)(
   IN NDIS_HANDLE  ProtocolAfContext,
   IN NDIS_HANDLE  NdisVcHandle,
   OUT PNDIS_HANDLE  ProtocolVcContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CO_DELETE_VC_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CO_DELETE_VC_HANDLER)(
   IN NDIS_HANDLE  ProtocolVcContext);
 
-typedef VOID DDKAPI
-(*CO_REQUEST_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CO_REQUEST_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolAfContext  OPTIONAL,
   IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
   IN NDIS_HANDLE  ProtocolPartyContext  OPTIONAL,
   IN PNDIS_REQUEST  NdisRequest);
 
-typedef NDIS_STATUS DDKAPI
-(*CO_REQUEST_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CO_REQUEST_HANDLER)(
   IN NDIS_HANDLE  ProtocolAfContext,
   IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
   IN NDIS_HANDLE       ProtocolPartyContext  OPTIONAL,
@@ -1174,81 +1184,81 @@ typedef VOID (*CL_OPEN_AF_COMPLETE_HANDLER)(
   IN NDIS_HANDLE ProtocolAfContext,
   IN NDIS_HANDLE NdisAfHandle);
 
-typedef VOID DDKAPI
-(*CL_CLOSE_AF_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_CLOSE_AF_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolAfContext);
 
-typedef VOID DDKAPI
-(*CL_REG_SAP_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_REG_SAP_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolSapContext,
   IN PCO_SAP  Sap,
   IN NDIS_HANDLE  NdisSapHandle);
 
-typedef VOID DDKAPI
-(*CL_DEREG_SAP_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_DEREG_SAP_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolSapContext);
 
-typedef VOID DDKAPI
-(*CL_MAKE_CALL_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_MAKE_CALL_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN NDIS_HANDLE  NdisPartyHandle  OPTIONAL,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef VOID DDKAPI
-(*CL_MODIFY_CALL_QOS_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_MODIFY_CALL_QOS_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef VOID DDKAPI
-(*CL_CLOSE_CALL_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_CLOSE_CALL_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN NDIS_HANDLE  ProtocolPartyContext  OPTIONAL);
 
-typedef VOID DDKAPI
-(*CL_ADD_PARTY_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_ADD_PARTY_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolPartyContext,
   IN NDIS_HANDLE  NdisPartyHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef VOID DDKAPI
-(*CL_DROP_PARTY_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_DROP_PARTY_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolPartyContext);
 
-typedef NDIS_STATUS DDKAPI
-(*CL_INCOMING_CALL_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *CL_INCOMING_CALL_HANDLER)(
   IN NDIS_HANDLE  ProtocolSapContext,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
-typedef VOID DDKAPI
-(*CL_INCOMING_CALL_QOS_CHANGE_HANDLER)(
+typedef VOID
+(DDKAPI *CL_INCOMING_CALL_QOS_CHANGE_HANDLER)(
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
-typedef VOID DDKAPI
-(*CL_INCOMING_CLOSE_CALL_HANDLER)(
+typedef VOID
+(DDKAPI *CL_INCOMING_CLOSE_CALL_HANDLER)(
   IN NDIS_STATUS  CloseStatus,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
-typedef VOID DDKAPI
-(*CL_INCOMING_DROP_PARTY_HANDLER)(
+typedef VOID
+(DDKAPI *CL_INCOMING_DROP_PARTY_HANDLER)(
   IN NDIS_STATUS  DropStatus,
   IN NDIS_HANDLE  ProtocolPartyContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
-typedef VOID DDKAPI
-(*CL_CALL_CONNECTED_HANDLER)(
+typedef VOID
+(DDKAPI *CL_CALL_CONNECTED_HANDLER)(
   IN NDIS_HANDLE  ProtocolVcContext);
 
 
@@ -1282,65 +1292,65 @@ typedef struct _NDIS_CLIENT_CHARACTERISTICS {
 
 /* Prototypes for NDIS 3.0 protocol characteristics */
 
-typedef VOID DDKAPI
-(*OPEN_ADAPTER_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *OPEN_ADAPTER_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status,
   IN NDIS_STATUS  OpenErrorStatus);
 
-typedef VOID DDKAPI
-(*CLOSE_ADAPTER_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CLOSE_ADAPTER_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*RESET_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *RESET_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*REQUEST_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *REQUEST_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_REQUEST  NdisRequest,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*STATUS_HANDLER)(
+typedef VOID
+(DDKAPI *STATUS_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  GeneralStatus,
   IN PVOID  StatusBuffer,
   IN UINT  StatusBufferSize);
 
-typedef VOID DDKAPI
-(*STATUS_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *STATUS_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext);
 
-typedef VOID DDKAPI
-(*SEND_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*WAN_SEND_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *WAN_SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_WAN_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*TRANSFER_DATA_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *TRANSFER_DATA_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status,
   IN UINT  BytesTransferred);
 
-typedef VOID DDKAPI
-(*WAN_TRANSFER_DATA_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *WAN_TRANSFER_DATA_COMPLETE_HANDLER)(
     VOID);
 
 
-typedef NDIS_STATUS DDKAPI
-(*RECEIVE_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *RECEIVE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PVOID  HeaderBuffer,
@@ -1349,14 +1359,14 @@ typedef NDIS_STATUS DDKAPI
   IN UINT  LookaheadBufferSize,
   IN UINT  PacketSize);
 
-typedef NDIS_STATUS DDKAPI
-(*WAN_RECEIVE_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *WAN_RECEIVE_HANDLER)(
   IN NDIS_HANDLE  NdisLinkHandle,
   IN PUCHAR  Packet,
   IN ULONG  PacketSize);
 
-typedef VOID DDKAPI
-(*RECEIVE_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *RECEIVE_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext);
 
 
@@ -1398,32 +1408,32 @@ typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS {
 
 /* Prototypes for NDIS 4.0 protocol characteristics */
 
-typedef INT DDKAPI
-(*RECEIVE_PACKET_HANDLER)(
+typedef INT
+(DDKAPI *RECEIVE_PACKET_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet);
 
-typedef VOID DDKAPI
-(*BIND_HANDLER)(
+typedef VOID
+(DDKAPI *BIND_HANDLER)(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  BindContext,
   IN PNDIS_STRING  DeviceName,
   IN PVOID  SystemSpecific1,
   IN PVOID  SystemSpecific2);
 
-typedef VOID DDKAPI
-(*UNBIND_HANDLER)(
+typedef VOID
+(DDKAPI *UNBIND_HANDLER)(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  UnbindContext);
 
-typedef NDIS_STATUS DDKAPI
-(*PNP_EVENT_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *PNP_EVENT_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNET_PNP_EVENT  NetPnPEvent);
 
-typedef VOID DDKAPI
-(*UNLOAD_PROTOCOL_HANDLER)(
+typedef VOID
+(DDKAPI *UNLOAD_PROTOCOL_HANDLER)(
   VOID);
 
 
@@ -1457,28 +1467,28 @@ typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS {
 
 /* Prototypes for NDIS 5.0 protocol characteristics */
 
-typedef VOID DDKAPI
-(*CO_SEND_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *CO_SEND_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PNDIS_PACKET  Packet);
 
-typedef VOID DDKAPI
-(*CO_STATUS_HANDLER)(
+typedef VOID
+(DDKAPI *CO_STATUS_HANDLER)(
        IN NDIS_HANDLE  ProtocolBindingContext,
        IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
        IN NDIS_STATUS  GeneralStatus,
        IN PVOID  StatusBuffer,
        IN UINT  StatusBufferSize);
 
-typedef UINT DDKAPI
-(*CO_RECEIVE_PACKET_HANDLER)(
+typedef UINT
+(DDKAPI *CO_RECEIVE_PACKET_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PNDIS_PACKET  Packet);
 
-typedef VOID DDKAPI
-(*CO_AF_REGISTER_NOTIFY_HANDLER)(
+typedef VOID
+(DDKAPI *CO_AF_REGISTER_NOTIFY_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PCO_ADDRESS_FAMILY  AddressFamily);
 
@@ -1510,11 +1520,11 @@ typedef struct _NDIS50_PROTOCOL_CHARACTERISTICS {
 
 #if defined(NDIS50) || defined(NDIS51)
 typedef struct _NDIS_PROTOCOL_CHARACTERISTICS {
-  NDIS50_PROTOCOL_CHARACTERISTICS_S;
+  NDIS50_PROTOCOL_CHARACTERISTICS_S
 } NDIS_PROTOCOL_CHARACTERISTICS, *PNDIS_PROTOCOL_CHARACTERISTICS;
 #elif defined(NDIS40)
 typedef struct _NDIS_PROTOCOL_CHARACTERISTICS {
-  NDIS40_PROTOCOL_CHARACTERISTICS_S;
+  NDIS40_PROTOCOL_CHARACTERISTICS_S
 } NDIS_PROTOCOL_CHARACTERISTICS, *PNDIS_PROTOCOL_CHARACTERISTICS;
 #else /* NDIS30 */
 typedef struct _NDIS_PROTOCOL_CHARACTERISTICS {
@@ -1994,37 +2004,16 @@ NdisQueryPacket(
  *   OUT PNDIS_BUFFER  *FirstBuffer  OPTIONAL,
  *   OUT PUINT  TotalPacketLength  OPTIONAL);
  */
-#define NdisQueryPacketLength(Packet,                                     \
-                              TotalPacketLength)                          \
-{                                                                         \
-  if ((TotalPacketLength))                                                \
-  {                                                                       \
-    if (!(Packet)->Private.ValidCounts) {                                 \
-      UINT _Offset;                                                       \
-      UINT _PacketLength;                                                 \
-      PNDIS_BUFFER _NdisBuffer;                                           \
-      UINT _PhysicalBufferCount = 0;                                      \
-      UINT _TotalPacketLength   = 0;                                      \
-      UINT _Count               = 0;                                      \
-                                                                          \
-      for (_NdisBuffer = (Packet)->Private.Head;                          \
-        _NdisBuffer != (PNDIS_BUFFER)NULL;                                \
-        _NdisBuffer = _NdisBuffer->Next)                                  \
-      {                                                                   \
-        _PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(_NdisBuffer);   \
-        NdisQueryBufferOffset(_NdisBuffer, &_Offset, &_PacketLength);     \
-        _TotalPacketLength += _PacketLength;                              \
-        _Count++;                                                         \
-      }                                                                   \
-      (Packet)->Private.PhysicalCount = _PhysicalBufferCount;             \
-      (Packet)->Private.TotalLength   = _TotalPacketLength;               \
-      (Packet)->Private.Count         = _Count;                           \
-      (Packet)->Private.ValidCounts   = TRUE;                             \
-  }                                                                       \
-                                                                          \
-  if (TotalPacketLength)                                                  \
-      *((PUINT)TotalPacketLength) = (Packet)->Private.TotalLength;        \
-  } \
+static __inline
+VOID
+NdisQueryPacketLength(
+    IN PNDIS_PACKET  Packet,
+    OUT PUINT  TotalPacketLength  OPTIONAL)
+{
+  if (!(Packet)->Private.ValidCounts)                                     \
+    NdisQueryPacket(Packet, NULL, NULL, NULL, TotalPacketLength);         \
+  else                                                                    \
+    *(TotalPacketLength) = (Packet)->Private.TotalLength;                 \
 }
 
 
@@ -2040,7 +2029,7 @@ NdisQueryPacket(
   {                                               \
       while (_Buffer->Next != NULL)               \
       {                                           \
-          ยด_Buffer = _Buffer->Next;               \
+          _Buffer = _Buffer->Next;                \
       }                                           \
       (Packet)->Private.Tail = _Buffer;           \
   }                                               \
@@ -2423,7 +2412,11 @@ NdisUpdateSharedMemory(
 #define NdisZeroMemory(Destination, Length) \
   RtlZeroMemory(Destination, Length)
 
-
+typedef VOID
+(DDKAPI *NDIS_BLOCK_INITIALIZER) (
+    IN  PUCHAR  Block,
+    IN  SIZE_T  NumberOfBytes
+    );
 
 /* Configuration routines */
 
@@ -3613,28 +3606,28 @@ NdisQueryBufferSafe(
 
 /* Prototypes for NDIS_MINIPORT_CHARACTERISTICS */
 
-typedef BOOLEAN DDKAPI
-(*W_CHECK_FOR_HANG_HANDLER)(
+typedef BOOLEAN
+(DDKAPI *W_CHECK_FOR_HANG_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
-typedef VOID DDKAPI
-(*W_DISABLE_INTERRUPT_HANDLER)(
+typedef VOID
+(DDKAPI *W_DISABLE_INTERRUPT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
-typedef VOID DDKAPI
-(*W_ENABLE_INTERRUPT_HANDLER)(
+typedef VOID
+(DDKAPI *W_ENABLE_INTERRUPT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
-typedef VOID DDKAPI
-(*W_HALT_HANDLER)(
+typedef VOID
+(DDKAPI *W_HALT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
-typedef VOID DDKAPI
-(*W_HANDLE_INTERRUPT_HANDLER)(
+typedef VOID
+(DDKAPI *W_HANDLE_INTERRUPT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
-typedef NDIS_STATUS DDKAPI
-(*W_INITIALIZE_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_INITIALIZE_HANDLER)(
   OUT PNDIS_STATUS  OpenErrorStatus,
   OUT PUINT  SelectedMediumIndex,
   IN PNDIS_MEDIUM  MediumArray,
@@ -3642,14 +3635,14 @@ typedef NDIS_STATUS DDKAPI
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  WrapperConfigurationContext);
 
-typedef VOID DDKAPI
-(*W_ISR_HANDLER)(
+typedef VOID
+(DDKAPI *W_ISR_HANDLER)(
   OUT PBOOLEAN  InterruptRecognized,
   OUT PBOOLEAN  QueueMiniportHandleInterrupt,
   IN   NDIS_HANDLE  MiniportAdapterContext);
 
-typedef NDIS_STATUS DDKAPI
-(*W_QUERY_INFORMATION_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_QUERY_INFORMATION_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_OID  Oid,
   IN PVOID  InformationBuffer,
@@ -3657,31 +3650,31 @@ typedef NDIS_STATUS DDKAPI
   OUT PULONG  BytesWritten,
   OUT PULONG  BytesNeeded);
 
-typedef NDIS_STATUS DDKAPI
-(*W_RECONFIGURE_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_RECONFIGURE_HANDLER)(
   OUT PNDIS_STATUS  OpenErrorStatus,
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE       WrapperConfigurationContext);
 
-typedef NDIS_STATUS DDKAPI
-(*W_RESET_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_RESET_HANDLER)(
   OUT PBOOLEAN  AddressingReset,
   IN NDIS_HANDLE  MiniportAdapterContext);
 
-typedef NDIS_STATUS DDKAPI
-(*W_SEND_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_SEND_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PNDIS_PACKET  Packet,
   IN UINT  Flags);
 
-typedef NDIS_STATUS DDKAPI
-(*WM_SEND_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *WM_SEND_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  NdisLinkHandle,
   IN PNDIS_WAN_PACKET  Packet);
 
-typedef NDIS_STATUS DDKAPI
-(*W_SET_INFORMATION_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_SET_INFORMATION_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_OID  Oid,
   IN PVOID  InformationBuffer,
@@ -3689,8 +3682,8 @@ typedef NDIS_STATUS DDKAPI
   OUT PULONG  BytesRead,
   OUT PULONG  BytesNeeded);
 
-typedef NDIS_STATUS DDKAPI
-(*W_TRANSFER_DATA_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_TRANSFER_DATA_HANDLER)(
   OUT PNDIS_PACKET  Packet,
   OUT PUINT  BytesTransferred,
   IN NDIS_HANDLE  MiniportAdapterContext,
@@ -3698,8 +3691,8 @@ typedef NDIS_STATUS DDKAPI
   IN UINT  ByteOffset,
   IN UINT  BytesToTransfer);
 
-typedef NDIS_STATUS DDKAPI
-(*WM_TRANSFER_DATA_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *WM_TRANSFER_DATA_HANDLER)(
   VOID);
 
 
@@ -3708,7 +3701,6 @@ typedef NDIS_STATUS DDKAPI
 #define NDIS30_MINIPORT_CHARACTERISTICS_S \
   UCHAR  MajorNdisVersion; \
   UCHAR  MinorNdisVersion; \
-  USHORT Filler; \
   UINT  Reserved; \
   W_CHECK_FOR_HANG_HANDLER  CheckForHangHandler; \
   W_DISABLE_INTERRUPT_HANDLER  DisableInterruptHandler; \
@@ -3720,15 +3712,9 @@ typedef NDIS_STATUS DDKAPI
   W_QUERY_INFORMATION_HANDLER  QueryInformationHandler; \
   W_RECONFIGURE_HANDLER  ReconfigureHandler; \
   W_RESET_HANDLER  ResetHandler; \
-  _ANONYMOUS_UNION union { \
-    W_SEND_HANDLER  SendHandler; \
-    WM_SEND_HANDLER  WanSendHandler; \
-  } _UNION_NAME(u1); \
+  W_SEND_HANDLER  SendHandler; \
   W_SET_INFORMATION_HANDLER  SetInformationHandler; \
-  _ANONYMOUS_UNION union { \
-    W_TRANSFER_DATA_HANDLER  TransferDataHandler; \
-    WM_TRANSFER_DATA_HANDLER  WanTransferDataHandler; \
-  } _UNION_NAME(u2);
+  W_TRANSFER_DATA_HANDLER  TransferDataHandler;
 
 typedef struct _NDIS30_MINIPORT_CHARACTERISTICS {
   NDIS30_MINIPORT_CHARACTERISTICS_S
@@ -3737,19 +3723,19 @@ typedef struct _NDIS30_MINIPORT_CHARACTERISTICS {
 
 /* Extensions for NDIS 4.0 miniports */
 
-typedef VOID DDKAPI
-(*W_SEND_PACKETS_HANDLER)(
+typedef VOID
+(DDKAPI *W_SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
-typedef VOID DDKAPI
-(*W_RETURN_PACKET_HANDLER)(
+typedef VOID
+(DDKAPI *W_RETURN_PACKET_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PNDIS_PACKET  Packet);
 
-typedef VOID DDKAPI
-(*W_ALLOCATE_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *W_ALLOCATE_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  VirtualAddress,
   IN PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
@@ -3781,33 +3767,33 @@ typedef struct _NDIS40_MINIPORT_CHARACTERISTICS {
 
 /* Extensions for NDIS 5.0 miniports */
 
-typedef NDIS_STATUS DDKAPI
-(*W_CO_CREATE_VC_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_CO_CREATE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  NdisVcHandle,
   OUT PNDIS_HANDLE  MiniportVcContext);
 
-typedef NDIS_STATUS DDKAPI
-(*W_CO_DELETE_VC_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_CO_DELETE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext);
 
-typedef NDIS_STATUS DDKAPI
-(*W_CO_ACTIVATE_VC_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_CO_ACTIVATE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
-typedef NDIS_STATUS DDKAPI
-(*W_CO_DEACTIVATE_VC_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_CO_DEACTIVATE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext);
 
-typedef VOID DDKAPI
-(*W_CO_SEND_PACKETS_HANDLER)(
+typedef VOID
+(DDKAPI *W_CO_SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
-typedef NDIS_STATUS DDKAPI
-(*W_CO_REQUEST_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *W_CO_REQUEST_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  MiniportVcContext  OPTIONAL,
   IN OUT PNDIS_REQUEST  NdisRequest);
@@ -3843,15 +3829,47 @@ typedef struct _NDIS50_MINIPORT_CHARACTERISTICS {
 
 /* Extensions for NDIS 5.1 miniports */
 
-typedef VOID DDKAPI
-(*W_CANCEL_SEND_PACKETS_HANDLER)(
+typedef VOID
+(DDKAPI *W_CANCEL_SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  CancelId);
 
+typedef VOID
+(DDKAPI *W_PNP_EVENT_NOTIFY_HANDLER)(
+  IN NDIS_HANDLE  MiniportAdapterContext,
+  IN NDIS_DEVICE_PNP_EVENT  PnPEvent,
+  IN PVOID  InformationBuffer,
+  IN ULONG  InformationBufferLength);
+
+typedef VOID
+(DDKAPI *W_MINIPORT_SHUTDOWN_HANDLER)(
+  IN PVOID  ShutdownContext);
+
+#ifdef __cplusplus
+
+#define NDIS51_MINIPORT_CHARACTERISTICS_S \
+  NDIS50_MINIPORT_CHARACTERISTICS  Ndis50Chars; \
+  W_CANCEL_SEND_PACKETS_HANDLER  CancelSendPacketsHandler; \
+  W_PNP_EVENT_NOTIFY_HANDLER  PnPEventNotifyHandler; \
+  W_MINIPORT_SHUTDOWN_HANDLER  AdapterShutdownHandler;
+
+#else
+
+#define NDIS51_MINIPORT_CHARACTERISTICS_S \
+  NDIS50_MINIPORT_CHARACTERISTICS_S \
+  W_CANCEL_SEND_PACKETS_HANDLER  CancelSendPacketsHandler; \
+  W_PNP_EVENT_NOTIFY_HANDLER  PnPEventNotifyHandler; \
+  W_MINIPORT_SHUTDOWN_HANDLER  AdapterShutdownHandler;
+
+#endif
+
+typedef struct _NDIS51_MINIPORT_CHARACTERISTICS {
+   NDIS51_MINIPORT_CHARACTERISTICS_S
+} NDIS51_MINIPORT_CHARACTERISTICS, *PSNDIS51_MINIPORT_CHARACTERISTICS;
 
 #if defined(NDIS51_MINIPORT)
 typedef struct _NDIS_MINIPORT_CHARACTERISTICS {
-  NDIS50_MINIPORT_CHARACTERISTICS_S
+  NDIS51_MINIPORT_CHARACTERISTICS_S
 } NDIS_MINIPORT_CHARACTERISTICS, *PNDIS_MINIPORT_CHARACTERISTICS;
 #elif defined(NDIS50_MINIPORT)
 typedef struct _NDIS_MINIPORT_CHARACTERISTICS {
@@ -3868,13 +3886,13 @@ typedef struct _NDIS_MINIPORT_CHARACTERISTICS {
 #endif
 
 
-typedef NDIS_STATUS DDKAPI
-(*SEND_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *SEND_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle,
   IN PNDIS_PACKET  Packet);
 
-typedef NDIS_STATUS DDKAPI
-(*TRANSFER_DATA_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *TRANSFER_DATA_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle,
   IN NDIS_HANDLE  MacReceiveContext,
   IN UINT  ByteOffset,
@@ -3882,12 +3900,12 @@ typedef NDIS_STATUS DDKAPI
   OUT PNDIS_PACKET  Packet,
   OUT PUINT  BytesTransferred);
 
-typedef NDIS_STATUS DDKAPI
-(*RESET_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *RESET_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle);
 
-typedef NDIS_STATUS DDKAPI
-(*REQUEST_HANDLER)(
+typedef NDIS_STATUS
+(DDKAPI *REQUEST_HANDLER)(
   IN NDIS_HANDLE   MacBindingHandle,
   IN PNDIS_REQUEST   NdisRequest);
 
@@ -3895,12 +3913,12 @@ typedef NDIS_STATUS DDKAPI
 
 /* Structures available only to full MAC drivers */
 
-typedef BOOLEAN DDKAPI
-(*PNDIS_INTERRUPT_SERVICE)(
+typedef BOOLEAN
+(DDKAPI *PNDIS_INTERRUPT_SERVICE)(
   IN PVOID  InterruptContext);
 
-typedef VOID DDKAPI
-(*PNDIS_DEFERRED_PROCESSING)(
+typedef VOID
+(DDKAPI *PNDIS_DEFERRED_PROCESSING)(
   IN PVOID  SystemSpecific1,
   IN PVOID  InterruptContext,
   IN PVOID  SystemSpecific2,
@@ -3993,12 +4011,12 @@ typedef struct _NDIS_BIND_PATHS {
 } NDIS_BIND_PATHS, *PNDIS_BIND_PATHS;
 
 
-typedef VOID DDKAPI
-(*ETH_RCV_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *ETH_RCV_COMPLETE_HANDLER)(
   IN PETH_FILTER  Filter);
 
-typedef VOID DDKAPI
-(*ETH_RCV_INDICATE_HANDLER)(
+typedef VOID
+(DDKAPI *ETH_RCV_INDICATE_HANDLER)(
   IN PETH_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PCHAR  Address,
@@ -4008,12 +4026,12 @@ typedef VOID DDKAPI
   IN UINT  LookaheadBufferSize,
   IN UINT  PacketSize);
 
-typedef VOID DDKAPI
-(*FDDI_RCV_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *FDDI_RCV_COMPLETE_HANDLER)(
   IN PFDDI_FILTER  Filter);
 
-typedef VOID DDKAPI
-(*FDDI_RCV_INDICATE_HANDLER)(
+typedef VOID
+(DDKAPI *FDDI_RCV_INDICATE_HANDLER)(
   IN PFDDI_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PCHAR  Address,
@@ -4024,18 +4042,18 @@ typedef VOID DDKAPI
   IN UINT  LookaheadBufferSize,
   IN UINT  PacketSize);
 
-typedef VOID DDKAPI
-(*FILTER_PACKET_INDICATION_HANDLER)(
+typedef VOID
+(DDKAPI *FILTER_PACKET_INDICATION_HANDLER)(
   IN NDIS_HANDLE  Miniport,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
-typedef VOID DDKAPI
-(*TR_RCV_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *TR_RCV_COMPLETE_HANDLER)(
   IN PTR_FILTER  Filter);
 
-typedef VOID DDKAPI
-(*TR_RCV_INDICATE_HANDLER)(
+typedef VOID
+(DDKAPI *TR_RCV_INDICATE_HANDLER)(
   IN PTR_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PVOID  HeaderBuffer,
@@ -4044,75 +4062,75 @@ typedef VOID DDKAPI
   IN UINT  LookaheadBufferSize,
   IN UINT  PacketSize);
 
-typedef VOID DDKAPI
-(*WAN_RCV_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *WAN_RCV_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisLinkContext);
 
-typedef VOID DDKAPI
-(*WAN_RCV_HANDLER)(
+typedef VOID
+(DDKAPI *WAN_RCV_HANDLER)(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisLinkContext,
   IN PUCHAR  Packet,
   IN ULONG  PacketSize);
 
-typedef VOID FASTCALL
-(*NDIS_M_DEQUEUE_WORK_ITEM)(
+typedef VOID
+(FASTCALL *NDIS_M_DEQUEUE_WORK_ITEM)(
   IN PNDIS_MINIPORT_BLOCK  Miniport,
   IN NDIS_WORK_ITEM_TYPE  WorkItemType,
   OUT PVOID  *WorkItemContext);
 
-typedef NDIS_STATUS FASTCALL
-(*NDIS_M_QUEUE_NEW_WORK_ITEM)(
+typedef NDIS_STATUS
+(FASTCALL *NDIS_M_QUEUE_NEW_WORK_ITEM)(
   IN PNDIS_MINIPORT_BLOCK  Miniport,
   IN NDIS_WORK_ITEM_TYPE  WorkItemType,
   IN PVOID  WorkItemContext);
 
-typedef NDIS_STATUS FASTCALL
-(*NDIS_M_QUEUE_WORK_ITEM)(
+typedef NDIS_STATUS
+(FASTCALL *NDIS_M_QUEUE_WORK_ITEM)(
   IN PNDIS_MINIPORT_BLOCK  Miniport,
   IN NDIS_WORK_ITEM_TYPE  WorkItemType,
   IN PVOID  WorkItemContext);
 
-typedef VOID DDKAPI
-(*NDIS_M_REQ_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_REQ_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*NDIS_M_RESET_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_RESET_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_STATUS  Status,
   IN BOOLEAN  AddressingReset);
 
-typedef VOID DDKAPI
-(*NDIS_M_SEND_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
-typedef VOID DDKAPI
-(*NDIS_M_SEND_RESOURCES_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_SEND_RESOURCES_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
-typedef BOOLEAN FASTCALL
-(*NDIS_M_START_SENDS)(
+typedef BOOLEAN
+(FASTCALL *NDIS_M_START_SENDS)(
   IN PNDIS_MINIPORT_BLOCK  Miniport);
 
-typedef VOID DDKAPI
-(*NDIS_M_STATUS_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_STATUS_HANDLER)(
   IN NDIS_HANDLE  MiniportHandle,
   IN NDIS_STATUS  GeneralStatus,
   IN PVOID  StatusBuffer,
   IN UINT  StatusBufferSize);
 
-typedef VOID DDKAPI
-(*NDIS_M_STS_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_STS_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
-typedef VOID DDKAPI
-(*NDIS_M_TD_COMPLETE_HANDLER)(
+typedef VOID
+(DDKAPI *NDIS_M_TD_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status,