WinRing0
WinRing0 is a hardware access library for Windows.
Features
WinRing0 library allows x86/x64 Windows applications to access
- I/O port
- MSR (Model-Specific Register)
- PCI
Copyrights
SPECIAL THANKS
How to Use
Put WinRing0.dll, WinRing0x64.dll, WinRing0.sys, WinRing0x64.sys, and WinRing0.vxd into the directory where your application's executable file resides.
C++
See also sample application.
Load-Time Dynamic Linking
- Add WinRing0.lib or WinRing0x64.lib to your project.
- Add #include "OlsApi.h" statement to your source file.
- Call InitializeOls().
- Call GetDllStatus() to check error.
- Call the library's functions.
- Call DeinitializeOls().
Reference : Load-Time Dynamic Linking (MSDN)
Run-Time Dynamic Linking
- Add #include "OlsApiInit.h" statement to your source file.
- Call InitOpenLibSys().
- Call GetDllStatus() to check error.
- Call the library's functions. *
- Call DeinitOpenLibSys().
*If you would like to call the library's functions on other source files, you should add #include "OlsApiInitExt.h" statement to the source files.
Reference : Run-Time Dynamic Linking (MSDN)
C
See also sample application.
- Put OpenLibSys.cs into your project.
- Add using OpenLibSys; statement to your source file.
- Call GetStatus() and GetDllStatus() to check error.
- Call the library's functions.
*Supported platform target is "x86", "x64" and "Any CPU". But WinRing0 does not support "IA64".
How to Build (Requirement)
Sample Code
C++ and C
Required Visual Studio 2015 Community or higher because of using MFC.
SYS (NT Driver)
Required WDK (Windows Driver Kits)
- Get WDK from MSDN
- Install WDK
- cd WinRing0/source/dll/sys
- build :trollface:
VxD (9x Driver)
Required Windows XP SP1 DDK + Win Me support
- Get Windows XP SP1 DDK from MSDN
- Install Windows XP SP1 DDK with Win Me support
- Open "Win Me Free Build Environment"
- cd WinRing0\source\dll\vxd
- nmake