How to write a driver to prepare for device guard(memory integrity)

  • Thread starter Thread starter sungjehong(inca-msdn-as)
  • Start date Start date
S

sungjehong(inca-msdn-as)

Guest
We have a project that supports os over xp using vs 2005 and wdk 7600.
Until now, the latest version of Windows 10 has been operating normally.
However, this time, the device guard protection feature of Windows 10 is turned on with memory integrity turned on.
When we investigated, only one of several drivers failed to load.
It only fails to load the driver adding / INTEGRITYCHECK to the link option to use the PsSetCreateProcessNotifyRoutineEx API.
When running the StartSevice API to load the driver, an error occurs with Error Code 87 (The parameter is incorrect).

1. What should I do to successfully load this driver?
2. Is it ok to load other drivers properly when memory integrity is turned on?
(See the FAQs at https://blogs.msdn.microsoft.com/wi...ompatibility-with-device-guard-in-windows-10/.) If using standard settings with the old versions of the WDK and Visual Studio, and the INIT section is marked as RWX.


So to solve the problem, I want to rebuild with vs2017 and wdk 10 according to driver compatibility with Device Guard in windows 10.
(https://blogs.msdn.microsoft.com/wi...ompatibility-with-device-guard-in-windows-10/)

Without modifying the entire code, POOL_NX_OPTIN = 1 and ExInitializeDriverRuntime (DrvRtPoolNxOptIn) as described in the link below; And then loaded after the build
(Single Binary Opt-In POOL_NX_OPTIN - Windows drivers)
It failed with the same error code 87.

This driver is not loaded and can not be verified.
So there is no problem testing verifier (memory integrity) after building another driver with the above options.
So I do not think the build is wrong.

1. How can I tell why the driver is not loaded (DriverEntry is not called)


2. If the driver is successfully loaded, should we create two separate files for the driver for xp and the driver for windows 10?

Continue reading...
 
Back
Top