RtlZeroMemory(&Current, sizeof(Current));
Current.Header.Type = NDIS_OBJECT_TYPE_OFFLOAD;
+#ifdef NDIS_RUNTIME_VERSION_685
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_685) {
+ Current.Header.Revision = NDIS_OFFLOAD_REVISION_6;
+ Current.Header.Size = NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_6;
+ } else
+#endif
if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660) {
Current.Header.Revision = NDIS_OFFLOAD_REVISION_4;
Current.Header.Size = NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_4;
Status.StatusCode = NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG;
Status.StatusBuffer = &Current;
+#ifdef NDIS_RUNTIME_VERSION_685
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_685)
+ Status.StatusBufferSize = NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_6;
+ else
+#endif
if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660)
Status.StatusBufferSize = NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_4;
else
case OID_GEN_DRIVER_VERSION:
BytesNeeded = sizeof(ULONG);
- if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660) {
- ndisStatus = __SetUlong(Buffer,
- BufferLength,
- (NDIS_MINIPORT_MAJOR_VERSION << 8) |
- NDIS_MINIPORT_MINOR_VERSION,
- &BytesWritten);
- } else {
- ndisStatus = __SetUlong(Buffer,
- BufferLength,
- (NDIS_MINIPORT_MINIMUM_MAJOR_VERSION << 8) |
- NDIS_MINIPORT_MINIMUM_MINOR_VERSION,
- &BytesWritten);
- }
+#ifdef NDIS_RUNTIME_VERSION_685
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_685)
+ Value32 = (NDIS_MINIPORT_MAJOR_VERSION << 8) |
+ NDIS_MINIPORT_MINOR_VERSION;
+ else
+#endif
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660)
+ Value32 = (6 << 8) | 60; // NDIS 6.60
+ else
+ Value32 = (NDIS_MINIPORT_MINIMUM_MAJOR_VERSION << 8) |
+ NDIS_MINIPORT_MINIMUM_MINOR_VERSION;
+
+ ndisStatus = __SetUlong(Buffer,
+ BufferLength,
+ Value32,
+ &BytesWritten);
break;
case OID_GEN_MAC_OPTIONS:
RtlZeroMemory(&Supported, sizeof(Supported));
Supported.Header.Type = NDIS_OBJECT_TYPE_OFFLOAD;
+#ifdef NDIS_RUNTIME_VERSION_685
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_685) {
+ Supported.Header.Revision = NDIS_OFFLOAD_REVISION_6;
+ Supported.Header.Size = NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_6;
+ } else
+#endif
if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660) {
Supported.Header.Revision = NDIS_OFFLOAD_REVISION_4;
Supported.Header.Size = NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_4;
MiniportDriverCharacteristics.Header.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;
MiniportDriverCharacteristics.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;
- if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660) {
+#ifdef NDIS_RUNTIME_VERSION_685
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_685) {
+ MiniportDriverCharacteristics.Header.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;
+ MiniportDriverCharacteristics.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;
+
MiniportDriverCharacteristics.MajorNdisVersion = NDIS_MINIPORT_MAJOR_VERSION; // 6
- MiniportDriverCharacteristics.MinorNdisVersion = NDIS_MINIPORT_MINOR_VERSION; // 60
+ MiniportDriverCharacteristics.MinorNdisVersion = NDIS_MINIPORT_MINOR_VERSION; // 85
+ } else
+#endif
+ if (NdisGetVersion() >= NDIS_RUNTIME_VERSION_660) {
+ MiniportDriverCharacteristics.MajorNdisVersion = 6;
+ MiniportDriverCharacteristics.MinorNdisVersion = 60;
} else {
MiniportDriverCharacteristics.MajorNdisVersion = NDIS_MINIPORT_MINIMUM_MAJOR_VERSION; // 6
MiniportDriverCharacteristics.MinorNdisVersion = NDIS_MINIPORT_MINIMUM_MINOR_VERSION; // 30