summaryrefslogtreecommitdiffstats
path: root/winsup/w32api/include/ddk/ndis.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/w32api/include/ddk/ndis.h')
-rw-r--r--winsup/w32api/include/ddk/ndis.h52
1 files changed, 45 insertions, 7 deletions
diff --git a/winsup/w32api/include/ddk/ndis.h b/winsup/w32api/include/ddk/ndis.h
index 216249df4..8ab5d5c98 100644
--- a/winsup/w32api/include/ddk/ndis.h
+++ b/winsup/w32api/include/ddk/ndis.h
@@ -37,8 +37,6 @@
extern "C" {
#endif
-#pragma pack(push,4)
-
#include "ntddk.h"
#include "ntddndis.h"
#include "netpnp.h"
@@ -537,6 +535,7 @@ typedef struct _NDIS_DMA_BLOCK {
PVOID MapRegisterBase;
KEVENT AllocationEvent;
PADAPTER_OBJECT SystemAdapterObject;
+ PVOID Miniport;
BOOLEAN InProgress;
} NDIS_DMA_BLOCK, *PNDIS_DMA_BLOCK;
@@ -703,10 +702,9 @@ typedef struct _CO_FLOW_PARAMETERS {
ULONG PeakBandwidth;
ULONG Latency;
ULONG DelayVariation;
- GUARANTEE LevelOfGuarantee;
- ULONG CostOfCall;
- ULONG NetworkAvailability;
+ SERVICETYPE ServiceType;
ULONG MaxSduSize;
+ ULONG MinimumPolicedSize;
} CO_FLOW_PARAMETERS, *PCO_FLOW_PARAMETERS;
typedef struct _CO_SPECIFIC_PARAMETERS {
@@ -2026,6 +2024,48 @@ NdisFreeBuffer(
} \
}
+/*
+ * VOID
+ * NdisQueryPacketLength(
+ * IN PNDIS_PACKET Packet,
+ * OUT PUINT PhysicalBufferCount OPTIONAL,
+ * OUT PUINT BufferCount OPTIONAL,
+ * 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; \
+ } \
+}
+
/*
* VOID
@@ -5178,8 +5218,6 @@ typedef struct _NDIS_MAC_CHARACTERISTICS {
typedef NDIS_MAC_CHARACTERISTICS NDIS_WAN_MAC_CHARACTERISTICS;
typedef NDIS_WAN_MAC_CHARACTERISTICS *PNDIS_WAN_MAC_CHARACTERISTICS;
-#pragma pack(pop)
-
#ifdef __cplusplus
}
#endif