none
How to build KMDF(Universal) driver for ARM64? RRS feed

  • Question

  • Hi,

    I'm trying to build KMDF(Universal) driver for ARM & ARM64. I could successfully built driver for ARM. But when I tried to build it for ARM64 bit platform,  I'm getting the following error.  Please help me to resolve this issue.

    I'm using the latest VS2015(10.0.14393.0) and WDK(10.0.14393.0). 

    1>------ Rebuild All started: Project: KMDF Driver1, Configuration: Debug ARM64 ------
    1>  Building 'KMDF Driver1' with toolset 'WindowsKernelModeDriver10.0' and the 'Universal' target platform.
    1>  Stamping ARM64\Debug\KMDFDriver1.inf [Version] section with DriverVer=10/17/2016,17.46.10.601
    1>  Device.c
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(12575): error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(18758): error C4013: '_DataSynchronizationBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19162): error C4013: '__readx18dword' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19194): error C4013: 'MemoryBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(21656): error C4013: 'DbgRaiseAssertionFailure' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(30625): error C4013: 'InterlockedExchangePointer' undefined; assuming extern returning int
    1>  Driver.c
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(12575): error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(18758): error C4013: '_DataSynchronizationBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19162): error C4013: '__readx18dword' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19194): error C4013: 'MemoryBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(21656): error C4013: 'DbgRaiseAssertionFailure' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(30625): error C4013: 'InterlockedExchangePointer' undefined; assuming extern returning int
    1>  Queue.c
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(12575): error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(18758): error C4013: '_DataSynchronizationBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19162): error C4013: '__readx18dword' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19194): error C4013: 'MemoryBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(21656): error C4013: 'DbgRaiseAssertionFailure' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(30625): error C4013: 'InterlockedExchangePointer' undefined; assuming extern returning int
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

    Thanks in advance,

    Muthukrishnan

    • Moved by 宝宝徐 Tuesday, October 18, 2016 2:45 AM
    Monday, October 17, 2016 12:25 PM

Answers

  • In case of anyone else like me looking for an answer, here is my solution to make it work:

    modify visual studio to install Visual C++ compilers and libraries for ARM/ARM64, reinstall them if they are there already

    Thursday, September 20, 2018 1:28 AM

All replies

  • Hi,

    I'm trying to build KMDF(Universal) driver for ARM & ARM64. I could successfully built driver for ARM. But when I tried to build it for ARM64 bit platform,  I'm getting the following error.  Please help me to resolve this issue.

    I'm using the latest VS2015(10.0.14393.0) and WDK(10.0.14393.0). 

    1>------ Rebuild All started: Project: KMDF Driver1, Configuration: Debug ARM64 ------
    1>  Building 'KMDF Driver1' with toolset 'WindowsKernelModeDriver10.0' and the 'Universal' target platform.
    1>  Stamping ARM64\Debug\KMDFDriver1.inf [Version] section with DriverVer=10/17/2016,17.46.10.601
    1>  Device.c
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(12575): error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(18758): error C4013: '_DataSynchronizationBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19162): error C4013: '__readx18dword' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19194): error C4013: 'MemoryBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(21656): error C4013: 'DbgRaiseAssertionFailure' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(30625): error C4013: 'InterlockedExchangePointer' undefined; assuming extern returning int
    1>  Driver.c
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(12575): error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(18758): error C4013: '_DataSynchronizationBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19162): error C4013: '__readx18dword' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19194): error C4013: 'MemoryBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(21656): error C4013: 'DbgRaiseAssertionFailure' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(30625): error C4013: 'InterlockedExchangePointer' undefined; assuming extern returning int
    1>  Queue.c
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(12575): error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(18758): error C4013: '_DataSynchronizationBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19162): error C4013: '__readx18dword' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(19194): error C4013: 'MemoryBarrier' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(21656): error C4013: 'DbgRaiseAssertionFailure' undefined; assuming extern returning int
    1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\wdm.h(30625): error C4013: 'InterlockedExchangePointer' undefined; assuming extern returning int
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

    Thanks in advance,

    Muthukrishnan

    Monday, October 17, 2016 12:21 PM
  • Hi Muthukrishnan,

    Thanks for your post.

    Since Our forum is discussing about VS general question like how to set/configure Visual Studio and Visual Studio tools.

    As your question is about KMDF driver development, I will help you move this case to 

       

    Windows Desktop Development ,Windows Hardware DevelopmentWindows Hardware WDK and Driver Development forum for dedicated support

    Best Regards,


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    Click HERE to participate the survey.

    Tuesday, October 18, 2016 2:44 AM
  • Hi Muthukrishnan,

    Welcome to the MSDN forum.

    Refer to your description, your issue is more related to the KMDF drive development. Since our forum is to discuss the setup issue of the Visual Studio and I found you already have another same thread on this forum: Windows Desktop Development>Windows Hardware WDK and Driver Development , I will merge the current thread to the same thread, please waiting for the professional support from the appropriate forum, thank you for your understanding.

    Best regards,

    Sara 


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    Tuesday, October 18, 2016 3:52 AM
  • In case of anyone else like me looking for an answer, here is my solution to make it work:

    modify visual studio to install Visual C++ compilers and libraries for ARM/ARM64, reinstall them if they are there already

    Thursday, September 20, 2018 1:28 AM