unreferend external symbol NdisMRegisterMiniportDriver in visual studio 2017

#include “Miniport.h”

DRIVEREXTN DriverExtn;
NDIS_HANDLE Handle;

NDIS_STATUS DriverEntry(
In PVOID DriverObject,
In PVOID RegistryPath
)
{
NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
NDIS_MINIPORT_DRIVER_CHARACTERISTICS MPChar;
NdisZeroMemory(&MPChar, sizeof(MPChar));
MPChar.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;
MPChar.Header.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;
MPChar.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;

MPChar.MajorNdisVersion = NDIS_MAJOR_VERSION;
MPChar.MinorNdisVersion = NDIS_MINOR_VERSION;

MPChar.MajorDriverVersion = MAJOR_DRIVER_VERSION;
MPChar.MinorDriverVersion = MINOR_DRIVER_VERISON;

MPChar.Flags = 0;
#if 0
MPChar.SetOptionsHandler = NULL;
MPChar.InitializeHandlerEx = MPInitializeEx;
MPChar.HaltHandlerEx = MPHaltEx;
MPChar.UnloadHandler = DriverUnload;
MPChar.PauseHandler = MPPause;
MPChar.RestartHandler = MPRestart;
MPChar.OidRequestHandler = MPOidRequest;
MPChar.SendNetBufferListsHandler = MPSendNetBufferLists;
MPChar.ReturnNetBufferListsHandler = MPReturnNetBufferLists;
MPChar.CancelSendHandler = MPCancelSend;
MPChar.CheckForHangHandlerEx = NULL;
MPChar.ResetHandlerEx = NULL;
MPChar.DevicePnPEventNotifyHandler = MPDevicePnpEventNotify;
MPChar.ShutdownHandlerEx = MPShutdownEx;
MPChar.CancelOidRequestHandler = MPCancelOidRequest;
MPChar.SynchronousOidRequestHandler = MPSynchronousOidRequest;
#endif
Status = NdisMRegisterMiniportDriver(DriverObject,
RegistryPath,
&DriverExtn,
&MPChar,
&Handle);
if (Status != NDIS_STATUS_SUCCESS) {
DriverUnload(DriverObject);
return Status;
}
DriverExtn.Flags |= NDIS_REGISTER_SUCCESS;
return Status;
}

VOID DriverUnload(
In PDRIVER_OBJECT DriverObject
)
{
UNREFERENCED_PARAMETER(DriverObject);

if (DriverExtn.Flags & NDIS_REGISTER_SUCCESS) {
NdisMDeregisterMiniportDriver(Handle);
}
}

Compilation on visual studio 2017(professional) throws linker error

Error LNK2019 unresolved external symbol NdisMRegisterMiniportDriver referenced in function DriverEntry

Error LNK2019 unresolved external symbol NdisMDeregisterMiniportDriver referenced in function DriverUnload

Error LNK1120 2 unresolved externals Miniport

Using WDK10 and ndis.h is included in Miniport.h. What could be the issue?Any helpful information is much appreciated.

Are you linking against ndis.lib?

-----Original Message-----
From: xxxxx@lists.osr.com On Behalf Of xxxxx@outlook.com
Sent: Thursday, July 12, 2018 10:40 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] unreferend external symbol NdisMRegisterMiniportDriver in visual studio 2017

#include “Miniport.h”

DRIVEREXTN DriverExtn;
NDIS_HANDLE Handle;

NDIS_STATUS DriverEntry(
In PVOID DriverObject,
In PVOID RegistryPath
)
{
NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
NDIS_MINIPORT_DRIVER_CHARACTERISTICS MPChar;
NdisZeroMemory(&MPChar, sizeof(MPChar));
MPChar.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;
MPChar.Header.Size = NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;
MPChar.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3;

MPChar.MajorNdisVersion = NDIS_MAJOR_VERSION;
MPChar.MinorNdisVersion = NDIS_MINOR_VERSION;

MPChar.MajorDriverVersion = MAJOR_DRIVER_VERSION;
MPChar.MinorDriverVersion = MINOR_DRIVER_VERISON;

MPChar.Flags = 0;
#if 0
MPChar.SetOptionsHandler = NULL;
MPChar.InitializeHandlerEx = MPInitializeEx;
MPChar.HaltHandlerEx = MPHaltEx;
MPChar.UnloadHandler = DriverUnload;
MPChar.PauseHandler = MPPause;
MPChar.RestartHandler = MPRestart;
MPChar.OidRequestHandler = MPOidRequest;
MPChar.SendNetBufferListsHandler = MPSendNetBufferLists;
MPChar.ReturnNetBufferListsHandler = MPReturnNetBufferLists;
MPChar.CancelSendHandler = MPCancelSend;
MPChar.CheckForHangHandlerEx = NULL;
MPChar.ResetHandlerEx = NULL;
MPChar.DevicePnPEventNotifyHandler = MPDevicePnpEventNotify;
MPChar.ShutdownHandlerEx = MPShutdownEx;
MPChar.CancelOidRequestHandler = MPCancelOidRequest;
MPChar.SynchronousOidRequestHandler = MPSynchronousOidRequest;
#endif
Status = NdisMRegisterMiniportDriver(DriverObject,
RegistryPath,
&DriverExtn,
&MPChar,
&Handle);
if (Status != NDIS_STATUS_SUCCESS) {
DriverUnload(DriverObject);
return Status;
}
DriverExtn.Flags |= NDIS_REGISTER_SUCCESS;
return Status;
}

VOID DriverUnload(
In PDRIVER_OBJECT DriverObject
)
{
UNREFERENCED_PARAMETER(DriverObject);

if (DriverExtn.Flags & NDIS_REGISTER_SUCCESS) {
NdisMDeregisterMiniportDriver(Handle);
}
}

Compilation on visual studio 2017(professional) throws linker error

Error LNK2019 unresolved external symbol NdisMRegisterMiniportDriver referenced in function DriverEntry

Error LNK2019 unresolved external symbol NdisMDeregisterMiniportDriver referenced in function DriverUnload

Error LNK1120 2 unresolved externals Miniport

Using WDK10 and ndis.h is included in Miniport.h. What could be the issue?Any helpful information is much appreciated.


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:>

Won’t the ndis.lib be part of winddk 10 integrated with the visual studio?

Yes, but it is not on the linker command line by default.

-----Original Message-----
From: xxxxx@lists.osr.com On Behalf Of xxxxx@outlook.com
Sent: Thursday, July 12, 2018 8:30 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] unreferend external symbol NdisMRegisterMiniportDriver in visual studio 2017

Won’t the ndis.lib be part of winddk 10 integrated with the visual studio?


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:>

On Jul 12, 2018, at 8:29 PM, xxxxx@outlook.com wrote:
>
> Won’t the ndis.lib be part of winddk 10 integrated with the visual studio?

Are you clear on the differences between ndis.h and ndis.lib, in how they are used and how they are located?

Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks Doron. Adding dependency manually worked.

Tim,
All the libs are part of wdk and it is integrated with visual studio. I presumed, the IDE will be able to link it automatically during compile.

xxxxx@outlook.com wrote:

All the libs are part of wdk and it is integrated with visual studio. I presumed, the IDE will be able to link it automatically during compile.

Yes, but just like you have to use #include to tell the compiler which
include files you need, you have to use linker directives to tell the
linker which libraries you need.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.