[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/4] Update to NDIS 6.30


  • To: <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Tue, 26 Oct 2021 08:12:09 +0100
  • Authentication-results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Owen Smith <owen.smith@xxxxxxxxxx>
  • Delivery-date: Tue, 26 Oct 2021 07:12:26 +0000
  • Ironport-data: A9a23:7JgrTq8LC5sI8TEaEpjvDrUDpHmTJUtcMsCJ2f8bNWPcYEJGY0x3z DYeUGqEa/uIMDGhL9l1bISzp0wHsZXWztI2QQY//i48E34SpcT7XtnIdU2Y0wF+jyHgoOCLy +1EN7Es+ehtFie0Si9AttENlFEkvU2ybuOU5NXsZ2YhGmeIdA970Ug6wrZj3NYy6TSEK1jlV e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhU5 O5Gm47rFz51L6LpmtUZQhxeOR5xaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us 6ZCcXZUM07F17neLLGTE4GAguwkM8Ttepgau21g5TrYEewnUdbIRKCiCdpwgWlo2pkQRq62i 8wxQwQ/VS/NYEJ0YXALWYwawL6BoWeifGgNwL6SjfVuuDWCpOBr65DyMdyQYsLPSchLk0Kwo mPd43+/EhwcLMaYyzeO7jSrnOCnoM/gcNtMTvvirKcs2QDNgDxIYPELabelidyVsUWQSYkBE hAF9Q8snKwj8UqBcdaoCnVUv0W4lhIbXtNRFcgz5weM1rfY7m6lO4QUctJSQId57JFuFFTGw nfMxomzXWU+79V5XFrEru/MxQ5eLxT5OoPricUsdgAC/8X46L86ihbCX76P+4bk04WrR1kcL 92MxRXSZon/b+ZXiM1XHnid2lpAQ6QlqSZuvm3qspqNtF8RWWJcT9XABaLnxfhBNp2FaVKKo WIJncOThMhXU8rQzXzdGbRcTOD4jxpgDNE7qQU3d6TNChz3oyLzFWyuyGgmTKuWDir0UWCwO xKC0e+gzJRSIGGrfcdKj3GZUKwXIVzbPY29DJj8N4MWCrAoLVPv1Hw+NCa4gjG2+GBxwP5XB HtuWZv1ZZrsIf88l2TeqiZ0+eJD+x3SMkuJFcynlk/8geTFDJNXIJ9cWGazgikCxPvsiG3oH xx3bqNmEj1TD7/zZDf564kWIQxYJHQ3H8mu+cdWavSCMkxtH2R4U63dxrYoeopEmaVJl7iXo iHhCxEAkFev12faLQiqa2x4bO+9V5hIsn9mbzcnOkyl2iZ/bN/3vrsfbZY+YZIu6PdnkaxvV /AAdsjZWqZPRz3L9i4zd574qIA+Jh2niRjXZ3iuYSQlfo4mTAvMo4e2cgzq/SgILyy2qcph/ OHwilKFGcIOHl0wAtzXZfSjy0KKkUIcwO8iDVHVJtRzeVn39NQ4ISLGkfJqcdoHLg/Ox2XG2 l/OUwsYv+TEv6Q87MLN2fKft46sHuZzQhhaEm3c4erkPCXW5DP+k4pJUeLOdjHBTmLkvq6lY LwNnf37NfQGmndMspZ9TOk3nf5vuYO3qu8I1BlgEVXKc0+vW+FpLXSx1MVSsrFAm+1CsgysV 0PTotRXNN1l4i8+/IL98Ob9Utm+6A==
  • Ironport-hdrordr: A9a23:n/V0ZKAxE5aBd+rlHemq55DYdb4zR+YMi2TC1yhKJiC9Ffbo8P xG/c5rrCMc5wxxZJhNo7290ey7MBHhHP1OkO0s1NWZPDUO0VHAROoJ0WKh+UyEJ8SXzJ866U 4KScZD4bPLYWSS9fyKgzWFLw==
  • Ironport-sdr: NYIE1J0dP3AelnB5JAhCi7j7dDUK74nRSWM3QMz0Hc+p7AwqF4x3o44iyd2ta9+aLWrc+9cqgc ECJVqFkqzwdsXq5o+Suj+sGf+wrbi53XiZuxmjMwKugnOKjvR6V6EYnxXF1iYK0K637E/Nqd+Q xulU+CaXIeHQNhnVfGlmZbEsk5h80yjHIMDWQ9WbLadXp1TSbVvzsDnv0jnysA/8xrzFyFlURp 9dXAzpa1LpUiMUT9ePLEN4dJzQ7NxvwiRUjNpGQaO63dKL2IC8SQ1IT2YJdXXw0PzSma3utC4D vRk1Vyj2d2L04PJdbEzjKSkX
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

NDIS 6.30 was introduced in Server 2012. Update XenNet to use the NDIS 6.30
interfaces. No additional features of NDIS 6.30 are used.
Also fixes "NDIS 6.5 GlitchFreeDevice" test by correctly reporting XenNet uses
a WDM lower edge.

Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
 src/xennet.inf               |  7 +++
 src/xennet/adapter.c         | 89 +++++++++++++++++++-----------------
 vs2015/xennet/xennet.vcxproj |  2 +-
 vs2017/xennet/xennet.vcxproj |  2 +-
 vs2019/xennet/xennet.vcxproj |  2 +-
 5 files changed, 56 insertions(+), 46 deletions(-)

diff --git a/src/xennet.inf b/src/xennet.inf
index b36b1e3..f93acba 100644
--- a/src/xennet.inf
+++ b/src/xennet.inf
@@ -166,6 +166,12 @@ HKR, Ndi\params\*RSS,                             
Optional,   0, "0"
 HKR, Ndi\params\*RSS\enum,                        "0",        0, %Disabled%
 HKR, Ndi\params\*RSS\enum,                        "1",        0, %Enabled%
 
+HKR, Ndi\params\*NumRSSQueues,                    ParamDesc,  0, %NumRSSQueues%
+HKR, Ndi\params\*NumRSSQueues,                    Type,       0, "int"
+HKR, Ndi\params\*NumRSSQueues,                    Default,    0, "8"
+HKR, Ndi\params\*NumRSSQueues,                    Min,        0, "1"
+HKR, Ndi\params\*NumRSSQueues,                    Max,        0, "8"
+
 [XenNet_Inst.Services] 
 AddService=xennet,0x02,XenNet_Service,XenNet_EventLog
 
@@ -211,6 +217,7 @@ LSOV2IPv6="Large Send Offload V2 (IPv6)"
 LROIPv4="Large Receive Offload (IPv4)"
 LROIPv6="Large Receive Offload (IPv6)"
 RSS="Receive Side Scaling"
+NumRSSQueues="Maximum Number of RSS Queues"
 HeaderDataSplit="Header Data Split"
 Disabled="Disabled"
 Enabled="Enabled"
diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
index eaa2c1b..7bfdc4a 100644
--- a/src/xennet/adapter.c
+++ b/src/xennet/adapter.c
@@ -61,17 +61,18 @@ typedef struct _PROPERTIES {
     int lrov4;
     int lrov6;
     int rss;
+    int numrssqueues;
 } PROPERTIES, *PPROPERTIES;
 
 typedef struct _XENNET_RSS {
-    BOOLEAN Supported;
-    BOOLEAN HashEnabled;
-    BOOLEAN ScaleEnabled;
-    ULONG   Types;
-    UCHAR   Key[NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_1];
-    ULONG   KeySize;
-    CCHAR   Table[NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1];
-    ULONG   TableSize;
+    BOOLEAN             Supported;
+    BOOLEAN             HashEnabled;
+    BOOLEAN             ScaleEnabled;
+    ULONG               Types;
+    UCHAR               Key[NDIS_RSS_HASH_SECRET_KEY_MAX_SIZE_REVISION_2];
+    ULONG               KeySize;
+    PROCESSOR_NUMBER    Table[NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_2 / 
sizeof(PROCESSOR_NUMBER)];
+    ULONG               TableCount;
 } XENNET_RSS, *PXENNET_RSS;
 
 struct _XENNET_ADAPTER {
@@ -88,7 +89,7 @@ struct _XENNET_ADAPTER {
 
     NDIS_HANDLE                 NdisAdapterHandle;
     NDIS_HANDLE                 NdisDmaHandle;
-    NDIS_PNP_CAPABILITIES       Capabilities;
+    NDIS_PM_CAPABILITIES        Capabilities;
     NDIS_OFFLOAD                Offload;
     PROPERTIES                  Properties;
     XENNET_RSS                  Rss;
@@ -108,6 +109,7 @@ static NDIS_OID XennetSupportedOids[] =
     OID_GEN_MEDIA_SUPPORTED,
     OID_GEN_MEDIA_IN_USE,
     OID_GEN_PHYSICAL_MEDIUM,
+    OID_GEN_PHYSICAL_MEDIUM_EX,
     OID_GEN_CURRENT_LOOKAHEAD,
     OID_GEN_MAXIMUM_LOOKAHEAD,
     OID_GEN_MAXIMUM_FRAME_SIZE,
@@ -150,7 +152,7 @@ static NDIS_OID XennetSupportedOids[] =
     OID_802_3_XMIT_MORE_COLLISIONS,
     OID_OFFLOAD_ENCAPSULATION,
     OID_TCP_OFFLOAD_PARAMETERS,
-    OID_PNP_CAPABILITIES,
+    OID_PM_CURRENT_CAPABILITIES,
     OID_PNP_QUERY_POWER,
     OID_PNP_SET_POWER,
     OID_GEN_RECEIVE_SCALE_PARAMETERS,
@@ -721,14 +723,12 @@ AdapterDisableRSSHash(
 
 static NDIS_STATUS
 AdapterUpdateRSSTable(
-    IN  PXENNET_ADAPTER Adapter,
-    IN  PCCHAR          Table,
-    IN  ULONG           TableSize
+    IN  PXENNET_ADAPTER     Adapter,
+    IN  PPROCESSOR_NUMBER   Table,
+    IN  ULONG               TableSize
     )
 {
-    PROCESSOR_NUMBER    
Mapping[NDIS_RSS_INDIRECTION_TABLE_MAX_SIZE_REVISION_1];
-    ULONG               Index;
-    NTSTATUS            status;
+    NTSTATUS                status;
 
     if (TableSize == 0) {
         AdapterDisableRSSHash(Adapter);
@@ -740,18 +740,12 @@ AdapterUpdateRSSTable(
 
     RtlZeroMemory(Adapter->Rss.Table, sizeof (Adapter->Rss.Table)) ;
     RtlCopyMemory(Adapter->Rss.Table, Table, TableSize);
-    Adapter->Rss.TableSize = TableSize;
-
-    RtlZeroMemory(Mapping, sizeof (Mapping));
-    for (Index = 0; Index < TableSize; Index++) {
-        Mapping[Index].Group = 0;
-        Mapping[Index].Number = Table[Index];
-    }
+    Adapter->Rss.TableCount = TableSize / sizeof(PROCESSOR_NUMBER);
 
     status = XENVIF_VIF(UpdateHashMapping,
                         &Adapter->VifInterface,
-                        Mapping,
-                        TableSize);
+                        Table,
+                        Adapter->Rss.TableCount);
 
     return (NT_SUCCESS(status)) ? NDIS_STATUS_SUCCESS : 
NDIS_STATUS_INVALID_DATA;
 }
@@ -900,12 +894,12 @@ DisplayRss(
         }
     }
 
-    if (Rss->TableSize != 0) {
+    if (Rss->TableCount != 0) {
         ULONG   Index;
 
         Trace("Table:\n");
 
-        for (Index = 0; Index < Rss->TableSize; ) {
+        for (Index = 0; Index < Rss->TableCount; ) {
             CHAR    Buffer[80];
             STRING  String;
             ULONG   Count;
@@ -916,8 +910,8 @@ DisplayRss(
             String.Length = 0;
 
             Count = 8;
-            if (Index + Count >= Rss->TableSize)
-                Count = Rss->TableSize - Index;
+            if (Index + Count >= Rss->TableCount)
+                Count = Rss->TableCount - Index;
 
             (VOID) StringPrintf(&String, "[%2u - %2u]: ",
                                 Index,
@@ -928,8 +922,9 @@ DisplayRss(
             String.Length = 0;
 
             for (Column = 0; Column < Count; Column++, Index++) {
-                (VOID) StringPrintf(&String, "%02x ",
-                                    Rss->Table[Index]);
+                (VOID) StringPrintf(&String, "%02x:%02x ",
+                                    Rss->Table[Index].Group,
+                                    Rss->Table[Index].Number);
 
                 String.Buffer += String.Length;
                 String.MaximumLength -= String.Length;
@@ -950,8 +945,8 @@ AdapterGetReceiveScaleParameters(
     NDIS_STATUS                         ndisStatus;
 
     ASSERT3U(Parameters->Header.Type, ==, NDIS_OBJECT_TYPE_RSS_PARAMETERS);
-    ASSERT3U(Parameters->Header.Revision, ==, 
NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1);
-    ASSERT3U(Parameters->Header.Size, >=, 
NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_1);
+    ASSERT3U(Parameters->Header.Revision, ==, 
NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2);
+    ASSERT3U(Parameters->Header.Size, >=, 
NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_2);
 
     if (!Adapter->Rss.Supported)
         return NDIS_STATUS_NOT_SUPPORTED;
@@ -985,7 +980,7 @@ AdapterGetReceiveScaleParameters(
 
     if (!(Parameters->Flags & NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED)) {
         ndisStatus = AdapterUpdateRSSTable(Adapter,
-                                           (PCCHAR)Parameters + 
Parameters->IndirectionTableOffset,
+                                           
(PPROCESSOR_NUMBER)((PCCHAR)Parameters + Parameters->IndirectionTableOffset),
                                            Parameters->IndirectionTableSize);
         if (ndisStatus != NDIS_STATUS_SUCCESS)
             goto fail;
@@ -2277,7 +2272,7 @@ AdapterQueryInformation(
     ndisStatus = NDIS_STATUS_SUCCESS;
 
     switch (Request->DATA.QUERY_INFORMATION.Oid) {
-    case OID_PNP_CAPABILITIES:
+    case OID_PM_CURRENT_CAPABILITIES:
         BytesNeeded = sizeof(Adapter->Capabilities);
         ndisStatus = __CopyBuffer(Buffer,
                                   BufferLength,
@@ -2926,6 +2921,7 @@ AdapterGetAdvancedSettings(
     READ_PROPERTY(Adapter->Properties.lrov6, L"LROIPv6", 1, Handle);
     READ_PROPERTY(Adapter->Properties.need_csum_value, L"NeedChecksumValue", 
1, Handle);
     READ_PROPERTY(Adapter->Properties.rss, L"*RSS", 1, Handle);
+    READ_PROPERTY(Adapter->Properties.numrssqueues, L"*NumRSSQueues", 8, 
Handle);
 
     NdisCloseConfiguration(Handle);
 
@@ -2949,11 +2945,12 @@ AdapterSetRegistrationAttributes(
 
     RtlZeroMemory(&Attribs, sizeof(Attribs));
     Attribs.Header.Type = 
NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;
-    Attribs.Header.Revision = 
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1;
-    Attribs.Header.Size = 
NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1;
+    Attribs.Header.Revision = 
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2;
+    Attribs.Header.Size = 
NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2;
     Attribs.MiniportAdapterContext = (NDIS_HANDLE)Adapter;
     Attribs.AttributeFlags = NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER |
-                             NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND;
+                             NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND |
+                             NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM;
     Attribs.CheckForHangTimeInSeconds = 0;
     Attribs.InterfaceType = XENNET_INTERFACE_TYPE;
 
@@ -2976,8 +2973,8 @@ AdapterSetGeneralAttributes(
 
     RtlZeroMemory(&Attribs, sizeof(Attribs));
     Attribs.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES;
-    Attribs.Header.Revision = 
NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_1;
-    Attribs.Header.Size = 
NDIS_SIZEOF_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_1;
+    Attribs.Header.Revision = 
NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_2;
+    Attribs.Header.Size = 
NDIS_SIZEOF_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_2;
     Attribs.MediaType = XENNET_MEDIA_TYPE;
 
     XENVIF_VIF(MacQueryMaximumFrameSize,
@@ -2992,7 +2989,7 @@ AdapterSetGeneralAttributes(
     Attribs.MediaConnectState = MediaConnectStateConnected;
     Attribs.MediaDuplexState = MediaDuplexStateFull;
     Attribs.LookaheadSize = Adapter->MaximumFrameSize;
-    Attribs.PowerManagementCapabilities = &Adapter->Capabilities;
+    Attribs.PowerManagementCapabilitiesEx = &Adapter->Capabilities;
     Attribs.MacOptions = XENNET_MAC_OPTIONS;
     Attribs.SupportedPacketFilters = XENNET_SUPPORTED_PACKET_FILTERS;
     Attribs.MaxMulticastListSize = 32;
@@ -3054,8 +3051,8 @@ AdapterSetGeneralAttributes(
 
     RtlZeroMemory(&Rss, sizeof(Rss));
     Rss.Header.Type = NDIS_OBJECT_TYPE_RSS_CAPABILITIES;
-    Rss.Header.Revision = NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1;
-    Rss.Header.Size = NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1;
+    Rss.Header.Revision = NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2;
+    Rss.Header.Size = NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2;
 
     Rss.CapabilitiesFlags = NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS |
                             NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR |
@@ -3073,6 +3070,12 @@ AdapterSetGeneralAttributes(
                &Rss.NumberOfReceiveQueues);
     Rss.NumberOfInterruptMessages = Rss.NumberOfReceiveQueues;
 
+    if ((ULONG)Adapter->Properties.numrssqueues < Rss.NumberOfReceiveQueues)
+        Rss.NumberOfReceiveQueues = Adapter->Properties.numrssqueues;
+
+    Rss.NumberOfInterruptMessages = Rss.NumberOfReceiveQueues;
+    Rss.NumberOfIndirectionTableEntries = 128; // WHQL requirement for NDIS 
6.30
+
     Info("%ws: RSS ENABLED (%u QUEUES)\n",
          Adapter->Location,
          Rss.NumberOfReceiveQueues);
diff --git a/vs2015/xennet/xennet.vcxproj b/vs2015/xennet/xennet.vcxproj
index 2d04c4e..b68d734 100644
--- a/vs2015/xennet/xennet.vcxproj
+++ b/vs2015/xennet/xennet.vcxproj
@@ -22,7 +22,7 @@
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      
<PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS61_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS630_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;</AdditionalIncludeDirectories>
       <WarningLevel>EnableAllWarnings</WarningLevel>
       
<DisableSpecificWarnings>4464;4711;4548;4820;4668;4255;6001;6054;28160;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
diff --git a/vs2017/xennet/xennet.vcxproj b/vs2017/xennet/xennet.vcxproj
index 0c27304..130b0e6 100644
--- a/vs2017/xennet/xennet.vcxproj
+++ b/vs2017/xennet/xennet.vcxproj
@@ -22,7 +22,7 @@
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      
<PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS61_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS630_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;</AdditionalIncludeDirectories>
       <WarningLevel>EnableAllWarnings</WarningLevel>
diff --git a/vs2019/xennet/xennet.vcxproj b/vs2019/xennet/xennet.vcxproj
index d79a691..1ad5601 100644
--- a/vs2019/xennet/xennet.vcxproj
+++ b/vs2019/xennet/xennet.vcxproj
@@ -21,7 +21,7 @@
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      
<PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS61_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS630_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;</AdditionalIncludeDirectories>
       <WarningLevel>EnableAllWarnings</WarningLevel>
-- 
2.33.0.windows.2




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.