Make NDIS 6.80 compliant
Implement support for synchronous OID requests and declare the Wintun as NDIS 6.80 compliant. https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-80 Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
c394368e88
commit
de2c48db84
24
wintun.c
24
wintun.c
@ -1525,6 +1525,21 @@ static void TunCancelDirectOidRequest(NDIS_HANDLE MiniportAdapterContext, PVOID
|
||||
{
|
||||
}
|
||||
|
||||
static MINIPORT_SYNCHRONOUS_OID_REQUEST TunSynchronousOidRequest;
|
||||
_Use_decl_annotations_
|
||||
static NDIS_STATUS TunSynchronousOidRequest(NDIS_HANDLE MiniportAdapterContext, PNDIS_OID_REQUEST OidRequest)
|
||||
{
|
||||
switch (OidRequest->RequestType) {
|
||||
case NdisRequestQueryInformation:
|
||||
case NdisRequestQueryStatistics:
|
||||
case NdisRequestSetInformation:
|
||||
return NDIS_STATUS_NOT_SUPPORTED;
|
||||
|
||||
default:
|
||||
return NDIS_STATUS_INVALID_OID;
|
||||
}
|
||||
}
|
||||
|
||||
static MINIPORT_UNLOAD TunUnload;
|
||||
_Use_decl_annotations_
|
||||
static VOID TunUnload(PDRIVER_OBJECT DriverObject)
|
||||
@ -1546,9 +1561,9 @@ NTSTATUS DriverEntry(DRIVER_OBJECT *DriverObject, UNICODE_STRING *RegistryPath)
|
||||
|
||||
NDIS_MINIPORT_DRIVER_CHARACTERISTICS miniport = {
|
||||
.Header = {
|
||||
.Type = NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS,
|
||||
.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2,
|
||||
.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2
|
||||
.Type = NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS,
|
||||
.Revision = NdisVersion < NDIS_RUNTIME_VERSION_680 ? NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2 : NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3,
|
||||
.Size = NdisVersion < NDIS_RUNTIME_VERSION_680 ? NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2 : NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3
|
||||
},
|
||||
|
||||
.MajorNdisVersion = (UCHAR)((NdisVersion & 0x00ff0000) >> 16),
|
||||
@ -1570,7 +1585,8 @@ NTSTATUS DriverEntry(DRIVER_OBJECT *DriverObject, UNICODE_STRING *RegistryPath)
|
||||
.ShutdownHandlerEx = TunShutdownEx,
|
||||
.CancelOidRequestHandler = TunCancelOidRequest,
|
||||
.DirectOidRequestHandler = TunDirectOidRequest,
|
||||
.CancelDirectOidRequestHandler = TunCancelDirectOidRequest
|
||||
.CancelDirectOidRequestHandler = TunCancelDirectOidRequest,
|
||||
.SynchronousOidRequestHandler = TunSynchronousOidRequest
|
||||
};
|
||||
if (!NT_SUCCESS(status = NdisMRegisterMiniportDriver(DriverObject, RegistryPath, NULL, &miniport, &NdisMiniportDriverHandle)))
|
||||
return status;
|
||||
|
@ -124,12 +124,12 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WINTUN_VERSION_MAJ=$(WintunVersionMaj);WINTUN_VERSION_MIN=$(WintunVersionMin);WINTUN_VERSION_STR="$(WintunVersionStr)";NDIS_MINIPORT_DRIVER=1;NDIS620_MINIPORT=1;NDIS670_MINIPORT=1;NDIS_WDM=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WINTUN_VERSION_MAJ=$(WintunVersionMaj);WINTUN_VERSION_MIN=$(WintunVersionMin);WINTUN_VERSION_STR="$(WintunVersionStr)";NDIS_MINIPORT_DRIVER=1;NDIS620_MINIPORT=1;NDIS680_MINIPORT=1;NDIS_WDM=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<EnablePREfast>true</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>WINTUN_VERSION_MAJ=$(WintunVersionMaj);WINTUN_VERSION_MIN=$(WintunVersionMin);WINTUN_VERSION_STR="$(WintunVersionStr)";NDIS_MINIPORT_DRIVER=1;NDIS620_MINIPORT=1;NDIS670_MINIPORT=1;NDIS_WDM=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WINTUN_VERSION_MAJ=$(WintunVersionMaj);WINTUN_VERSION_MIN=$(WintunVersionMin);WINTUN_VERSION_STR="$(WintunVersionStr)";NDIS_MINIPORT_DRIVER=1;NDIS620_MINIPORT=1;NDIS680_MINIPORT=1;NDIS_WDM=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ndis.lib;wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
|
Loading…
Reference in New Issue
Block a user