├── DeviceRW_EXE └── Source │ └── LoadDriver │ ├── HelloDDKDeviceRW.sln │ ├── LoadDriver.cpp │ ├── LoadDriver.h │ ├── LoadDriver.vcproj │ └── Main.cpp ├── DeviceRW_SYS_BUFFERIO ├── DeviceRW.sln ├── DeviceRW.vcproj ├── Driver.cpp ├── Driver.h ├── MakeSys.bat ├── Sources └── makefile ├── DeviceRW_SYS_DIRECTIO ├── DeviceRW.sln ├── DeviceRW.vcproj ├── Driver.cpp ├── Driver.h ├── MakeSys.bat ├── Sources └── makefile ├── DriverCallDriver └── Source │ ├── EXE_Application │ ├── EXE_Application.sln │ ├── EXE_Application.vcproj │ ├── LoadDriver.cpp │ ├── LoadDriver.h │ └── Main.cpp │ ├── IO定时器.zip │ ├── SYS_CallDriver │ ├── MakeSys.bat │ ├── SYS_CallDriver.sln │ ├── SYS_CallDriver.vcproj │ ├── Sources │ ├── SysCallDriver.cpp │ └── makefile │ ├── SYS_Example │ ├── MakeSys.bat │ ├── SYS_Example.sln │ ├── SYS_Example.vcproj │ ├── Sources │ ├── SysExample.cpp │ └── makefile │ └── ZShareFiles │ └── ZShareDef.h ├── FileRW ├── Driver.cpp ├── Driver.h ├── HelloDDK.sln ├── HelloDDK.vcproj ├── MakeSys.bat ├── Sources └── makefile ├── HelloDDK ├── Driver.cpp ├── Driver.h ├── HelloDDK.sln ├── HelloDDK.vcproj ├── MakeSys.bat ├── Sources └── makefile ├── LayerDriver └── Source │ ├── EXE_LayerDriver │ ├── EXE_LayerDriver.sln │ ├── EXE_LayerDriver.vcproj │ ├── LoadDriver.cpp │ ├── LoadDriver.h │ └── Main.cpp │ ├── ReadMe.txt │ ├── SYS_BaseDriver │ ├── MakeSys.bat │ ├── SYS_BaseDriver.sln │ ├── SYS_BaseDriver.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile │ ├── SYS_Example │ ├── MakeSys.bat │ ├── SYS_Example.sln │ ├── SYS_Example.vcproj │ ├── Sources │ ├── SysExample.cpp │ └── makefile │ ├── SYS_FilterDriver │ ├── MakeSys.bat │ ├── SYS_FilterDriver.sln │ ├── SYS_FilterDriver.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile │ └── ZShareFiles │ ├── MC_DllHelper.hpp │ ├── ZShareDef.h │ └── ZVersion.h ├── LoadDriver └── Source │ └── LoadDriver │ ├── LoadDriver.cpp │ ├── LoadDriver.h │ ├── LoadDriver.sln │ ├── LoadDriver.vcproj │ └── Main.cpp ├── README.md ├── TestString ├── Driver.cpp ├── Driver.h ├── HelloDDK.sln ├── HelloDDK.vcproj ├── MakeSys.bat ├── Sources └── makefile ├── VirtualDisc └── Source │ ├── EXE_VirtualDisc │ ├── LoadDriver.cpp │ ├── LoadDriver.h │ ├── LoadDriver.sln │ ├── LoadDriver.vcproj │ └── Main.cpp │ ├── SYS_FilterDriver │ ├── MakeSys.bat │ ├── SYS_FilterDriver.sln │ ├── SYS_FilterDriver.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile │ ├── SYS_VirtualDisc │ ├── MC_VirtualDisc.cpp │ ├── MC_VirtualDisc.h │ ├── MakeSys.bat │ ├── SYS_VirtualDisc.sln │ ├── SYS_VirtualDisc.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile │ └── ZShareFiles │ ├── MC_DllHelper.hpp │ ├── ZShareDef.h │ └── ZVersion.h ├── notes.docx ├── 串口过滤 ├── doc │ ├── 关于卸载时蓝屏的错误代码.txt │ └── 蓝屏原因.txt └── source │ └── SYS_ComFilter │ ├── MakeSys.bat │ ├── SYS_ComFilter.sln │ ├── SYS_ComFilter.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile ├── 光驱过滤 └── DRV_NSAWriter.rar ├── 文件系统过滤 ├── doc │ └── readme.txt └── src │ ├── DLL_FSFilter │ ├── DLLMain.cpp │ ├── DLLMain.h │ ├── DLL_KbdFilter.sln │ ├── DLL_KbdFilter.vcproj │ ├── LoadDriver.cpp │ ├── LoadDriver.h │ ├── MC_KernelWork.cpp │ └── MC_KernelWork.h │ ├── SYS_FSFilter │ ├── FuncHelper.cpp │ ├── FuncHelper.h │ ├── MakeSys.bat │ ├── SYS_FSFilter.sln │ ├── SYS_FSFilter.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ ├── fastIO.h │ └── makefile │ ├── SYS_MinFsFilter │ ├── MakeSys.bat │ ├── SYS_MinFsFilter.inf │ ├── SYS_MinFsFilter.sln │ ├── SYS_MinFsFilter.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile │ └── ZSharefile │ ├── define.h │ ├── mc_dllhelper.hpp │ └── mi_kbdfilter.h ├── 网络过滤 └── src │ ├── EXE_SocketTest │ ├── Client.vcproj │ ├── ClientMain.cpp │ ├── EXE_SocketTest.sln │ ├── Server.vcproj │ └── ServerMain.cpp │ └── SYS_FilterTDI │ ├── FuncHelper.cpp │ ├── FuncHelper.h │ ├── MakeSys.bat │ ├── SYS_FilterTDI.sln │ ├── SYS_FilterTDI.vcproj │ ├── Sources │ ├── SysMain.cpp │ ├── SysMain.h │ └── makefile └── 键盘过滤 ├── doc ├── SYS_KbdFilter.pdb ├── SYS_KbdFilter.sys ├── mi_kbdfilter.h └── readme.txt └── src ├── DLL_KbdFilter ├── DLLMain.cpp ├── DLLMain.h ├── DLL_KbdFilter.sln ├── DLL_KbdFilter.vcproj ├── LoadDriver.cpp ├── LoadDriver.h ├── MC_KernelWork.cpp └── MC_KernelWork.h ├── SYS_KbdFilter ├── MakeSys.bat ├── SYS_KbdFilter.sln ├── SYS_KbdFilter.vcproj ├── Sources ├── SysMain.cpp ├── SysMain.h └── makefile └── ZSharefile ├── define.h ├── mc_dllhelper.hpp └── mi_kbdfilter.h /DeviceRW_EXE/Source/LoadDriver/HelloDDKDeviceRW.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LoadDriver", "LoadDriver.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /DeviceRW_EXE/Source/LoadDriver/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_EXE/Source/LoadDriver/LoadDriver.cpp -------------------------------------------------------------------------------- /DeviceRW_EXE/Source/LoadDriver/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /DeviceRW_EXE/Source/LoadDriver/LoadDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_EXE/Source/LoadDriver/LoadDriver.vcproj -------------------------------------------------------------------------------- /DeviceRW_EXE/Source/LoadDriver/Main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "LoadDriver.h" 3 | 4 | int main(int vArgc, char** vArg) 5 | { 6 | 7 | 8 | if(LoadNTDriverA("HelloDDKDeviceRW","HelloDDKDeviceRW.sys")) 9 | printf("LoadNTDriverA\n"); 10 | else 11 | printf("LoadNTDriverA fail ,%d\n",GetLastError()); 12 | getchar(); 13 | /* 14 | HANDLE tDevice = CreateFile("\\\\.\\HelloDDKDeviceRW",GENERIC_WRITE | GENERIC_READ, 0,NULL,OPEN_EXISTING,0,NULL); 15 | if(tDevice != INVALID_HANDLE_VALUE) 16 | printf("Createfile success!\n"); 17 | else 18 | printf("CreateFile fail,%d\n",GetLastError()); 19 | getchar(); 20 | 21 | char tBuff[64] = {"My name is CZHC"}; 22 | DWORD tlen = sizeof(tBuff); 23 | 24 | if(WriteFile(tDevice,tBuff,sizeof(tBuff),&tlen,0)) 25 | { 26 | printf("Write success\n"); 27 | printf("i write :%s ",tBuff); 28 | } 29 | else 30 | { 31 | printf("Write fail\n"); 32 | } 33 | 34 | memset(tBuff,0,sizeof(tBuff)); 35 | if(ReadFile(tDevice,tBuff,sizeof(tBuff),&tlen,0)) 36 | { 37 | printf("Read success\n"); 38 | printf("i read :%s\n",tBuff); 39 | } 40 | else 41 | { 42 | printf("read fail\n"); 43 | } 44 | 45 | CloseHandle(tDevice); 46 | */ 47 | if(UnloadNTDriverA("HelloDDKDeviceRW")) 48 | printf("UnloadNTDriverA\n"); 49 | else 50 | printf("UnloadNTDriverA fail ,%d\n",GetLastError()); 51 | 52 | getchar(); 53 | return 0; 54 | } -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/DeviceRW.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeviceRW", "DeviceRW.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/DeviceRW.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_SYS_BUFFERIO/DeviceRW.vcproj -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/Driver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_SYS_BUFFERIO/Driver.cpp -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/Driver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_SYS_BUFFERIO/Driver.h -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=HelloDDKDeviceRW 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=Driver.cpp\ -------------------------------------------------------------------------------- /DeviceRW_SYS_BUFFERIO/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/DeviceRW.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeviceRW", "DeviceRW.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/DeviceRW.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_SYS_DIRECTIO/DeviceRW.vcproj -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/Driver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_SYS_DIRECTIO/Driver.cpp -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/Driver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DeviceRW_SYS_DIRECTIO/Driver.h -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=HelloDDKDeviceRW 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=Driver.cpp\ -------------------------------------------------------------------------------- /DeviceRW_SYS_DIRECTIO/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/EXE_Application/EXE_Application.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXE_Application", "EXE_Application.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/EXE_Application/EXE_Application.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/EXE_Application/EXE_Application.vcproj -------------------------------------------------------------------------------- /DriverCallDriver/Source/EXE_Application/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/EXE_Application/LoadDriver.cpp -------------------------------------------------------------------------------- /DriverCallDriver/Source/EXE_Application/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /DriverCallDriver/Source/EXE_Application/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/EXE_Application/Main.cpp -------------------------------------------------------------------------------- /DriverCallDriver/Source/IO定时器.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/IO定时器.zip -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_CallDriver/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_CallDriver/SYS_CallDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_CallDriver", "SYS_CallDriver.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_CallDriver/SYS_CallDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/SYS_CallDriver/SYS_CallDriver.vcproj -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_CallDriver/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_CallDriver 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysCallDriver.cpp\ -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_CallDriver/SysCallDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/SYS_CallDriver/SysCallDriver.cpp -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_CallDriver/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_Example/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_Example/SYS_Example.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_Example", "SYS_Example.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_Example/SYS_Example.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/SYS_Example/SYS_Example.vcproj -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_Example/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_Example 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysExample.cpp\ -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_Example/SysExample.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/DriverCallDriver/Source/SYS_Example/SysExample.cpp -------------------------------------------------------------------------------- /DriverCallDriver/Source/SYS_Example/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /DriverCallDriver/Source/ZShareFiles/ZShareDef.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef zsharedef_H_ 3 | #define zsharedef_H_ 4 | //--------------------------------------------------------------------------- 5 | 6 | #ifdef _NTDDK_ 7 | #define __T(x) L##x 8 | #else 9 | #define __T(x) x 10 | #endif 11 | 12 | #define DEVICE_NAME __T("\\Device\\SYS_Example") 13 | #define DEVICE_SYMBOLICLINK __T("\\??\\symbolic_Example") 14 | 15 | #define DEVICE_NAME_CALLDRIVER __T("\\Device\\SYS_CallDriver") 16 | #define DEVICE_SYMBOLICLINK__CALLDRIVER __T("\\??\\symbolic_CallDriver") 17 | //--------------------------------------------------------------------------- 18 | #endif 19 | -------------------------------------------------------------------------------- /FileRW/Driver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/FileRW/Driver.cpp -------------------------------------------------------------------------------- /FileRW/Driver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/FileRW/Driver.h -------------------------------------------------------------------------------- /FileRW/HelloDDK.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloDDK", "HelloDDK.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /FileRW/HelloDDK.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/FileRW/HelloDDK.vcproj -------------------------------------------------------------------------------- /FileRW/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /FileRW/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=HelloDDK 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=Driver.cpp\ -------------------------------------------------------------------------------- /FileRW/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /HelloDDK/Driver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/HelloDDK/Driver.cpp -------------------------------------------------------------------------------- /HelloDDK/Driver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/HelloDDK/Driver.h -------------------------------------------------------------------------------- /HelloDDK/HelloDDK.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloDDK", "HelloDDK.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /HelloDDK/HelloDDK.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/HelloDDK/HelloDDK.vcproj -------------------------------------------------------------------------------- /HelloDDK/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /HelloDDK/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=HelloDDK 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=Driver.cpp\ -------------------------------------------------------------------------------- /HelloDDK/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /LayerDriver/Source/EXE_LayerDriver/EXE_LayerDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXE_LayerDriver", "EXE_LayerDriver.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /LayerDriver/Source/EXE_LayerDriver/EXE_LayerDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/EXE_LayerDriver/EXE_LayerDriver.vcproj -------------------------------------------------------------------------------- /LayerDriver/Source/EXE_LayerDriver/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/EXE_LayerDriver/LoadDriver.cpp -------------------------------------------------------------------------------- /LayerDriver/Source/EXE_LayerDriver/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /LayerDriver/Source/EXE_LayerDriver/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/EXE_LayerDriver/Main.cpp -------------------------------------------------------------------------------- /LayerDriver/Source/ReadMe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/ReadMe.txt -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/SYS_BaseDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_BaseDriver", "SYS_BaseDriver.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/SYS_BaseDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/SYS_BaseDriver/SYS_BaseDriver.vcproj -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_BaseDriver 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ 9 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/SYS_BaseDriver/SysMain.cpp -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/SysMain.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef SysMainH 3 | #define SysMainH 4 | //--------------------------------------------------------------------------- 5 | 6 | #ifdef __cplusplus 7 | extern "C" 8 | { 9 | #endif 10 | 11 | #include 12 | #include 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #define Debug(_X_) {KdPrint(("SYS_BaseDriver:"));KdPrint((_X_)); KdPrint(("\n"));} 19 | 20 | typedef struct _MyDeviceExtend 21 | { 22 | int i; 23 | }MyDeviceExtend; 24 | 25 | //--------------------------------------------------------------------------- 26 | // Interface export files. 27 | #include "../ZShareFiles/ZShareDef.h" 28 | //--------------------------------------------------------------------------- 29 | // Share define file in here. 30 | //--------------------------------------------------------------------------- 31 | // Myself include file in here. 32 | //--------------------------------------------------------------------------- 33 | #endif -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_BaseDriver/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_Example/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_Example/SYS_Example.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_Example", "SYS_Example.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_Example/SYS_Example.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/SYS_Example/SYS_Example.vcproj -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_Example/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_Example 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysExample.cpp\ -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_Example/SysExample.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/SYS_Example/SysExample.cpp -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_Example/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/SYS_FilterDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_FilterDriver", "SYS_FilterDriver.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/SYS_FilterDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/SYS_FilterDriver/SYS_FilterDriver.vcproj -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_FilterDriver 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ 9 | -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/SYS_FilterDriver/SysMain.cpp -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/SysMain.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef SysMainH 3 | #define SysMainH 4 | //--------------------------------------------------------------------------- 5 | 6 | #ifdef __cplusplus 7 | extern "C" 8 | { 9 | #endif 10 | 11 | #include 12 | #include 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #define Debug(_X_) {KdPrint(("SYS_FilterDriver: "));KdPrint((_X_)); KdPrint(("\n"));} 19 | 20 | typedef struct _MyDeviceExtend 21 | { 22 | PDEVICE_OBJECT LowDevice; 23 | int LowDeviceReadLimit; 24 | 25 | }MyDeviceExtend; 26 | 27 | typedef struct _MyContext 28 | { 29 | PMDL NewMdl; 30 | PMDL PreMdl; 31 | ULONG LeftLength; 32 | ULONG AlreadyLength; 33 | PVOID LeftVirtualAddress; 34 | }MyContext; 35 | //--------------------------------------------------------------------------- 36 | // Interface export files. 37 | #include "../ZShareFiles/ZShareDef.h" 38 | //--------------------------------------------------------------------------- 39 | // Share define file in here. 40 | //--------------------------------------------------------------------------- 41 | // Myself include file in here. 42 | //--------------------------------------------------------------------------- 43 | #endif -------------------------------------------------------------------------------- /LayerDriver/Source/SYS_FilterDriver/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /LayerDriver/Source/ZShareFiles/MC_DllHelper.hpp: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | #ifndef MC_DLLHELPER_H 3 | #define MC_DLLHELPER_H 4 | //-------------------------------------------------- 5 | #include 6 | //-------------------------------------------------- 7 | #define Kinkoo_InterfaceExport(_X_) \ 8 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_GetInterface(void** IPtr) \ 9 | { \ 10 | if(0 == IPtr) return false; \ 11 | *IPtr = new _X_; \ 12 | return true; \ 13 | } \ 14 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_FreeInterface(void* IPtr) \ 15 | { \ 16 | if(0 == IPtr) return false; \ 17 | delete (_X_*)IPtr; \ 18 | return true; \ 19 | } \ 20 | //-------------------------------------------------- 21 | typedef bool (__cdecl *FuncKinkoo_GetInterface)(void** IPtr); 22 | typedef bool (__cdecl *FuncKinkoo_FreeInterface)(void* IPtr); 23 | //-------------------------------------------------- 24 | template 25 | class mc_dllheper 26 | { 27 | public: 28 | mc_dllheper(); 29 | 30 | bool load (char* vDllName); 31 | bool free (void); 32 | 33 | Interface_Type *operator->() const 34 | { 35 | return m_Interface; 36 | } 37 | 38 | Interface_Type* m_Interface; 39 | HMODULE m_Instance; 40 | bool m_Avaliable; 41 | }; 42 | //-------------------------------------------------- 43 | template 44 | mc_dllheper::mc_dllheper() 45 | { 46 | m_Interface = 0; 47 | m_Instance = 0; 48 | m_Avaliable = false; 49 | } 50 | //-------------------------------------------------- 51 | template 52 | bool mc_dllheper::load(char *vDllName) 53 | { 54 | if(true == m_Avaliable) 55 | return true; 56 | 57 | m_Instance = LoadLibraryA(vDllName); 58 | if(0 == m_Instance) 59 | { 60 | return false; 61 | } 62 | 63 | FuncKinkoo_GetInterface tFunc = (FuncKinkoo_GetInterface)GetProcAddress(m_Instance, "Kinkoo_GetInterface"); 64 | if(0 == tFunc) 65 | { 66 | FreeLibrary(m_Instance); 67 | return false; 68 | } 69 | 70 | tFunc((void**)&m_Interface); 71 | if(0 == m_Interface) 72 | { 73 | FreeLibrary(m_Instance); 74 | return false; 75 | } 76 | 77 | m_Avaliable = true; 78 | return true; 79 | } 80 | //-------------------------------------------------- 81 | template 82 | bool mc_dllheper::free(void) 83 | { 84 | if(false == m_Avaliable) 85 | return true; 86 | 87 | FuncKinkoo_FreeInterface tFunc = (FuncKinkoo_FreeInterface)GetProcAddress(m_Instance, "Kinkoo_FreeInterface"); 88 | tFunc(m_Interface); 89 | 90 | if(0 != m_Instance) 91 | FreeLibrary(m_Instance); 92 | 93 | m_Interface = 0; 94 | m_Instance = 0; 95 | m_Avaliable = false; 96 | return true; 97 | } 98 | //-------------------------------------------------- 99 | #endif 100 | -------------------------------------------------------------------------------- /LayerDriver/Source/ZShareFiles/ZShareDef.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LayerDriver/Source/ZShareFiles/ZShareDef.h -------------------------------------------------------------------------------- /LayerDriver/Source/ZShareFiles/ZVersion.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef ZVersionH 3 | #define ZVersionH 4 | //--------------------------------------------------------------------------- 5 | #define _Product_VerDate_ "2013-07-17" 6 | #define _Product_VerValue_ "2.1.0.125" 7 | #define _Product_VerBuild_ "2.1.0 Build(125)" 8 | 9 | #define _ShareLIB_VerDate_ "None" 10 | #define _ShareLIB_VerValue_ "1.0.0.0" 11 | //--------------------------------------------------------------------------- 12 | #endif 13 | -------------------------------------------------------------------------------- /LoadDriver/Source/LoadDriver/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LoadDriver/Source/LoadDriver/LoadDriver.cpp -------------------------------------------------------------------------------- /LoadDriver/Source/LoadDriver/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /LoadDriver/Source/LoadDriver/LoadDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LoadDriver", "LoadDriver.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /LoadDriver/Source/LoadDriver/LoadDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LoadDriver/Source/LoadDriver/LoadDriver.vcproj -------------------------------------------------------------------------------- /LoadDriver/Source/LoadDriver/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/LoadDriver/Source/LoadDriver/Main.cpp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WindowsDrivers 2 | 关于Windows驱动开发的学习 3 | -------------------------------------------------------------------------------- /TestString/Driver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/TestString/Driver.cpp -------------------------------------------------------------------------------- /TestString/Driver.h: -------------------------------------------------------------------------------- 1 | #ifndef __DRIVERH_ 2 | #define __DRIVERH_ 3 | 4 | 5 | #ifdef __cplusplus 6 | extern "C" 7 | { 8 | #endif 9 | #include 10 | #ifdef __cplusplus 11 | } 12 | #endif 13 | 14 | #endif 15 | 16 | -------------------------------------------------------------------------------- /TestString/HelloDDK.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloDDK", "HelloDDK.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /TestString/HelloDDK.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/TestString/HelloDDK.vcproj -------------------------------------------------------------------------------- /TestString/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /TestString/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=HelloDDK 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=Driver.cpp\ -------------------------------------------------------------------------------- /TestString/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /VirtualDisc/Source/EXE_VirtualDisc/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/EXE_VirtualDisc/LoadDriver.cpp -------------------------------------------------------------------------------- /VirtualDisc/Source/EXE_VirtualDisc/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /VirtualDisc/Source/EXE_VirtualDisc/LoadDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LoadDriver", "LoadDriver.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /VirtualDisc/Source/EXE_VirtualDisc/LoadDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/EXE_VirtualDisc/LoadDriver.vcproj -------------------------------------------------------------------------------- /VirtualDisc/Source/EXE_VirtualDisc/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/EXE_VirtualDisc/Main.cpp -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/SYS_FilterDriver.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_FilterDriver", "SYS_FilterDriver.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/SYS_FilterDriver.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/SYS_FilterDriver/SYS_FilterDriver.vcproj -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_FilterDriver 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ 9 | -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/SYS_FilterDriver/SysMain.cpp -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/SysMain.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef SysMainH 3 | #define SysMainH 4 | //--------------------------------------------------------------------------- 5 | 6 | #ifdef __cplusplus 7 | extern "C" 8 | { 9 | #endif 10 | 11 | #include 12 | #include 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #define Debug(_X_) {KdPrint(("SYS_LayerDriver: "));KdPrint((_X_)); KdPrint(("\n"));} 19 | 20 | typedef struct _MyDeviceExtend 21 | { 22 | PDEVICE_OBJECT LowDevice; 23 | }MyDeviceExtend; 24 | //--------------------------------------------------------------------------- 25 | // Interface export files. 26 | #include "../ZShareFiles/ZShareDef.h" 27 | //--------------------------------------------------------------------------- 28 | // Share define file in here. 29 | //--------------------------------------------------------------------------- 30 | // Myself include file in here. 31 | //--------------------------------------------------------------------------- 32 | #endif -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_FilterDriver/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/MC_VirtualDisc.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/SYS_VirtualDisc/MC_VirtualDisc.cpp -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/MC_VirtualDisc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/SYS_VirtualDisc/MC_VirtualDisc.h -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/SYS_VirtualDisc.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_VirtualDisc", "SYS_VirtualDisc.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/SYS_VirtualDisc.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/SYS_VirtualDisc/SYS_VirtualDisc.vcproj -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_VirtualDisc 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ 9 | MC_VirtualDisc.cpp\ -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/SYS_VirtualDisc/SysMain.cpp -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/SysMain.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef SysMainH 3 | #define SysMainH 4 | //--------------------------------------------------------------------------- 5 | 6 | #ifdef __cplusplus 7 | extern "C" 8 | { 9 | #endif 10 | 11 | #include 12 | #include 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #define Debug(_X_) {KdPrint((_X_)); KdPrint(("\n"));} 19 | 20 | //--------------------------------------------------------------------------- 21 | // Interface export files. 22 | #include "../ZShareFiles/ZShareDef.h" 23 | //--------------------------------------------------------------------------- 24 | // Share define file in here. 25 | //--------------------------------------------------------------------------- 26 | // Myself include file in here. 27 | //--------------------------------------------------------------------------- 28 | #endif -------------------------------------------------------------------------------- /VirtualDisc/Source/SYS_VirtualDisc/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /VirtualDisc/Source/ZShareFiles/MC_DllHelper.hpp: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | #ifndef MC_DLLHELPER_H 3 | #define MC_DLLHELPER_H 4 | //-------------------------------------------------- 5 | #include 6 | //-------------------------------------------------- 7 | #define Kinkoo_InterfaceExport(_X_) \ 8 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_GetInterface(void** IPtr) \ 9 | { \ 10 | if(0 == IPtr) return false; \ 11 | *IPtr = new _X_; \ 12 | return true; \ 13 | } \ 14 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_FreeInterface(void* IPtr) \ 15 | { \ 16 | if(0 == IPtr) return false; \ 17 | delete (_X_*)IPtr; \ 18 | return true; \ 19 | } \ 20 | //-------------------------------------------------- 21 | typedef bool (__cdecl *FuncKinkoo_GetInterface)(void** IPtr); 22 | typedef bool (__cdecl *FuncKinkoo_FreeInterface)(void* IPtr); 23 | //-------------------------------------------------- 24 | template 25 | class mc_dllheper 26 | { 27 | public: 28 | mc_dllheper(); 29 | 30 | bool load (char* vDllName); 31 | bool free (void); 32 | 33 | Interface_Type *operator->() const 34 | { 35 | return m_Interface; 36 | } 37 | 38 | Interface_Type* m_Interface; 39 | HMODULE m_Instance; 40 | bool m_Avaliable; 41 | }; 42 | //-------------------------------------------------- 43 | template 44 | mc_dllheper::mc_dllheper() 45 | { 46 | m_Interface = 0; 47 | m_Instance = 0; 48 | m_Avaliable = false; 49 | } 50 | //-------------------------------------------------- 51 | template 52 | bool mc_dllheper::load(char *vDllName) 53 | { 54 | if(true == m_Avaliable) 55 | return true; 56 | 57 | m_Instance = LoadLibraryA(vDllName); 58 | if(0 == m_Instance) 59 | { 60 | return false; 61 | } 62 | 63 | FuncKinkoo_GetInterface tFunc = (FuncKinkoo_GetInterface)GetProcAddress(m_Instance, "Kinkoo_GetInterface"); 64 | if(0 == tFunc) 65 | { 66 | FreeLibrary(m_Instance); 67 | return false; 68 | } 69 | 70 | tFunc((void**)&m_Interface); 71 | if(0 == m_Interface) 72 | { 73 | FreeLibrary(m_Instance); 74 | return false; 75 | } 76 | 77 | m_Avaliable = true; 78 | return true; 79 | } 80 | //-------------------------------------------------- 81 | template 82 | bool mc_dllheper::free(void) 83 | { 84 | if(false == m_Avaliable) 85 | return true; 86 | 87 | FuncKinkoo_FreeInterface tFunc = (FuncKinkoo_FreeInterface)GetProcAddress(m_Instance, "Kinkoo_FreeInterface"); 88 | tFunc(m_Interface); 89 | 90 | if(0 != m_Instance) 91 | FreeLibrary(m_Instance); 92 | 93 | m_Interface = 0; 94 | m_Instance = 0; 95 | m_Avaliable = false; 96 | return true; 97 | } 98 | //-------------------------------------------------- 99 | #endif 100 | -------------------------------------------------------------------------------- /VirtualDisc/Source/ZShareFiles/ZShareDef.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/VirtualDisc/Source/ZShareFiles/ZShareDef.h -------------------------------------------------------------------------------- /VirtualDisc/Source/ZShareFiles/ZVersion.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | #ifndef ZVersionH 3 | #define ZVersionH 4 | //--------------------------------------------------------------------------- 5 | #define _Product_VerDate_ "2013-07-17" 6 | #define _Product_VerValue_ "2.1.0.125" 7 | #define _Product_VerBuild_ "2.1.0 Build(125)" 8 | 9 | #define _ShareLIB_VerDate_ "None" 10 | #define _ShareLIB_VerValue_ "1.0.0.0" 11 | //--------------------------------------------------------------------------- 12 | #endif 13 | -------------------------------------------------------------------------------- /notes.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/notes.docx -------------------------------------------------------------------------------- /串口过滤/doc/关于卸载时蓝屏的错误代码.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/串口过滤/doc/关于卸载时蓝屏的错误代码.txt -------------------------------------------------------------------------------- /串口过滤/doc/蓝屏原因.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/串口过滤/doc/蓝屏原因.txt -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/SYS_ComFilter.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_ComFilter", "SYS_ComFilter.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/SYS_ComFilter.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/串口过滤/source/SYS_ComFilter/SYS_ComFilter.vcproj -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_ComFilter 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/SysMain.cpp: -------------------------------------------------------------------------------- 1 | #include "SysMain.h" 2 | 3 | VOID DriverUnload(IN PDRIVER_OBJECT pDriverObject) 4 | { 5 | PDEVICE_OBJECT tDeviceObj = pDriverObject->DeviceObject; 6 | PMYDEVICE_EXTENSION tDevExtend = (PMYDEVICE_EXTENSION)tDeviceObj->DeviceExtension; 7 | UNICODE_STRING tMySymbol; 8 | RtlInitUnicodeString(&tMySymbol,L"\\??\\SYS_ComFilterSymbol"); 9 | 10 | if(0 != tDevExtend->LowDeviceObj) 11 | { 12 | IoDetachDevice(tDevExtend->LowDeviceObj); 13 | } 14 | 15 | LARGE_INTEGER tDelay; 16 | tDelay.QuadPart = 5000*10000*(-1); 17 | KeDelayExecutionThread(KernelMode,FALSE,&tDelay); 18 | 19 | 20 | IoDeleteSymbolicLink(&tMySymbol); 21 | IoDeleteDevice(tDeviceObj); 22 | } 23 | 24 | NTSTATUS DriverCommonDispatch(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) 25 | { 26 | Debug("Entry DriverCommonDispatch"); 27 | PMYDEVICE_EXTENSION tDevExtend = (PMYDEVICE_EXTENSION)pDevObj->DeviceExtension; 28 | IoSkipCurrentIrpStackLocation(pIrp); 29 | NTSTATUS tStatus = IoCallDriver(tDevExtend->LowDeviceObj, pIrp); 30 | Debug("Leave DriverCommonDipatch"); 31 | return tStatus; 32 | } 33 | 34 | NTSTATUS DriverPower(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) 35 | { 36 | Debug("Entry DriverPower"); 37 | PoStartNextPowerIrp(pIrp); 38 | IoSkipCurrentIrpStackLocation(pIrp); 39 | PMYDEVICE_EXTENSION tDevExtend = (PMYDEVICE_EXTENSION)pDevObj->DeviceExtension; 40 | NTSTATUS tStatus = PoCallDriver(tDevExtend->LowDeviceObj, pIrp); 41 | Debug("Leave DriverPower"); 42 | return tStatus; 43 | } 44 | 45 | NTSTATUS DriverWrite(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) 46 | { 47 | Debug("Enter DriverWrite"); 48 | PIO_STACK_LOCATION tStackLocal = IoGetCurrentIrpStackLocation(pIrp); 49 | PMYDEVICE_EXTENSION tDevExtend = (PMYDEVICE_EXTENSION)pDevObj->DeviceExtension; 50 | PUCHAR tBuf = 0; 51 | ULONG tLen = tStackLocal->Parameters.Write.Length; 52 | if(0 != pIrp->MdlAddress) 53 | { 54 | tBuf = (PUCHAR)MmGetMdlVirtualAddress(pIrp->MdlAddress); 55 | } 56 | else if(0 != pIrp->UserBuffer) 57 | { 58 | tBuf = (PUCHAR)pIrp->UserBuffer; 59 | } 60 | else 61 | { 62 | tBuf = (PUCHAR)pIrp->AssociatedIrp.SystemBuffer; 63 | } 64 | 65 | for(int i=0; iLowDeviceObj,pIrp); 71 | Debug("Leave DriverWrite"); 72 | return tStatus; 73 | } 74 | 75 | extern "C" NTSTATUS DriverEntry (IN PDRIVER_OBJECT pDriverObject,IN PUNICODE_STRING pRegistryPath) 76 | { 77 | for(int i=0; iMajorFunction[i] = DriverCommonDispatch; 80 | } 81 | pDriverObject->MajorFunction[IRP_MJ_POWER] = DriverPower; 82 | pDriverObject->MajorFunction[IRP_MJ_WRITE] = DriverWrite; 83 | 84 | pDriverObject->DriverUnload = DriverUnload; 85 | 86 | PDEVICE_OBJECT tLowDeviceObj = 0; 87 | PFILE_OBJECT tFileObj = 0; 88 | UNICODE_STRING tLowDeviceName; 89 | RtlInitUnicodeString(&tLowDeviceName,L"\\Device\\serial0"); 90 | NTSTATUS tStatus = IoGetDeviceObjectPointer(&tLowDeviceName,FILE_ALL_ACCESS,&tFileObj,&tLowDeviceObj); 91 | if(false == NT_SUCCESS(tStatus)) 92 | { 93 | return tStatus; 94 | } 95 | else 96 | { 97 | ObDereferenceObject(tFileObj); 98 | } 99 | 100 | UNICODE_STRING tMyDeviceName; 101 | RtlInitUnicodeString(&tMyDeviceName,L"\\Device\\SYS_ComFilter"); 102 | PDEVICE_OBJECT tMyDeviceObj = 0; 103 | tStatus = IoCreateDevice(pDriverObject,sizeof(MYDEVICE_EXTENSION),&tMyDeviceName,tLowDeviceObj->DeviceType,0,FALSE,&tMyDeviceObj); 104 | if(false == NT_SUCCESS(tStatus)) 105 | { 106 | return tStatus; 107 | } 108 | 109 | 110 | UNICODE_STRING tMySymbol; 111 | RtlInitUnicodeString(&tMySymbol,L"\\??\\SYS_ComFilterSymbol"); 112 | tStatus = IoCreateSymbolicLink(&tMySymbol,&tMyDeviceName); 113 | if(false == NT_SUCCESS(tStatus)) 114 | { 115 | IoDeleteDevice(tMyDeviceObj); 116 | return tStatus; 117 | } 118 | 119 | // 120 | if(tLowDeviceObj->Flags & DO_DIRECT_IO) 121 | tMyDeviceObj->Flags |= DO_DIRECT_IO; 122 | if(tLowDeviceObj->Flags & DO_BUFFERED_IO) 123 | tMyDeviceObj->Flags |= DO_BUFFERED_IO; 124 | if(tLowDeviceObj->Characteristics & FILE_DEVICE_SECURE_OPEN) 125 | tMyDeviceObj->Characteristics |= FILE_DEVICE_SECURE_OPEN; 126 | tMyDeviceObj->Flags |= DO_POWER_PAGABLE; 127 | 128 | PMYDEVICE_EXTENSION tDevExtend = (PMYDEVICE_EXTENSION)tMyDeviceObj->DeviceExtension; 129 | tDevExtend->LowDeviceObj = IoAttachDeviceToDeviceStack(tMyDeviceObj,tLowDeviceObj); 130 | if(0 == tDevExtend->LowDeviceObj) 131 | { 132 | IoDeleteSymbolicLink(&tMySymbol); 133 | IoDeleteDevice(tMyDeviceObj); 134 | return STATUS_UNSUCCESSFUL; 135 | } 136 | tMyDeviceObj->Flags = tMyDeviceObj->Flags & ~DO_DEVICE_INITIALIZING; 137 | return STATUS_SUCCESS; 138 | } 139 | 140 | -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/SysMain.h: -------------------------------------------------------------------------------- 1 | #ifndef SysMainH 2 | #define SysMainH 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | #include 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | 13 | #define Debug(_X_) { KdPrint(("SYS_ComFilter:"));KdPrint((_X_));KdPrint(("\n")); } 14 | 15 | typedef struct _MyDEVICE_EXTENSION 16 | { 17 | PDEVICE_OBJECT LowDeviceObj; 18 | }MYDEVICE_EXTENSION, *PMYDEVICE_EXTENSION; 19 | 20 | #endif -------------------------------------------------------------------------------- /串口过滤/source/SYS_ComFilter/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /光驱过滤/DRV_NSAWriter.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/光驱过滤/DRV_NSAWriter.rar -------------------------------------------------------------------------------- /文件系统过滤/doc/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/doc/readme.txt -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/DLLMain.cpp: -------------------------------------------------------------------------------- 1 | #include "DLLMain.h" 2 | //--------------------------------------------------------------------------- 3 | HINSTANCE __MyInstance__ = 0; 4 | //--------------------------------------------------------------------------- 5 | BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpvReserved) 6 | { 7 | switch(fdwReason) 8 | { 9 | case DLL_PROCESS_ATTACH: 10 | __MyInstance__ = hInstDll; 11 | DisableThreadLibraryCalls(__MyInstance__); 12 | break; 13 | 14 | case DLL_PROCESS_DETACH: 15 | case DLL_THREAD_ATTACH: 16 | case DLL_THREAD_DETACH: 17 | break; 18 | } 19 | 20 | return true; 21 | } 22 | //--------------------------------------------------------------------------- 23 | int main(void) 24 | { 25 | 26 | MC_KernelWork tKernelWork; 27 | if(false == tKernelWork.OnLoad()) 28 | { 29 | printf("onload fail\n"); 30 | tKernelWork.OnExit(); 31 | return 0; 32 | } 33 | getchar(); 34 | printf("enable test \n"); 35 | printf("cur status: %d\n",tKernelWork.m_CurStatus); 36 | /* 37 | tKernelWork.Disabled(); 38 | printf("after disable status: %d\n",tKernelWork.m_CurStatus); 39 | getchar();*/ 40 | 41 | 42 | tKernelWork.Enable(); 43 | printf("after enable status: %d\n",tKernelWork.m_CurStatus); 44 | getchar(); 45 | 46 | tKernelWork.CancelIntercept(); 47 | printf("after CancelIntercept status: %d\n",tKernelWork.m_CurStatus); 48 | getchar(); 49 | 50 | unsigned short tBuf[10] = {0}; 51 | int tLen = sizeof(tBuf); 52 | int total = tKernelWork.Intercept(tBuf,&tLen); 53 | getchar(); 54 | tLen = sizeof(tBuf); 55 | total = tKernelWork.Intercept(tBuf,&tLen); 56 | printf("after Intercept status: %d\n",tKernelWork.m_CurStatus); 57 | getchar(); 58 | 59 | printf("total:%d,tLen:%d\n",total,tLen); 60 | for(int i=0; i 5 | 6 | #include "../ZSharefile/define.h" 7 | #include "../ZSharefile/mc_dllhelper.hpp" 8 | 9 | #include "LoadDriver.h" 10 | #include "MC_KernelWork.h" 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/DLL_KbdFilter.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DLL_KbdFilter", "DLL_KbdFilter.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/DLL_KbdFilter.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/DLL_FSFilter/DLL_KbdFilter.vcproj -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/DLL_FSFilter/LoadDriver.cpp -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/MC_KernelWork.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/DLL_FSFilter/MC_KernelWork.cpp -------------------------------------------------------------------------------- /文件系统过滤/src/DLL_FSFilter/MC_KernelWork.h: -------------------------------------------------------------------------------- 1 | #ifndef __MC_KERNELWORKH_ 2 | #define __MC_KERNELWORKH_ 3 | 4 | #include "../ZSharefile/mi_kbdfilter.h" 5 | #include "DLLMain.h" 6 | 7 | 8 | #include 9 | 10 | #define MAX_MAKECODE 4096 11 | 12 | class MC_KernelWork : public MI_KbdFilter 13 | { 14 | public: 15 | MC_KernelWork(void); 16 | ~MC_KernelWork(void); 17 | 18 | virtual bool OnLoad(); 19 | virtual void OnExit(); 20 | 21 | virtual int Enable(); 22 | virtual int Disabled(); 23 | 24 | virtual int GetStatus(); 25 | 26 | virtual int Intercept(unsigned short* tBuf, int* tLen); 27 | virtual int CancelIntercept(); 28 | 29 | public: 30 | static DWORD WINAPI ThreadProc(LPVOID lpParameter) 31 | { 32 | MC_KernelWork* tThis = (MC_KernelWork*)lpParameter; 33 | tThis->KbdThreadProc(); 34 | return 0; 35 | } 36 | 37 | private: 38 | int KbdThreadProc(); 39 | 40 | public: 41 | bool m_Avaliable; 42 | 43 | HANDLE m_ShareEvent; 44 | HANDLE m_Thread; 45 | bool m_ThreadTerminate; 46 | 47 | //InterlockedCompareExchange(); 48 | LONG m_SpinLock; 49 | std::list m_MakeCode; 50 | 51 | int m_CurStatus; 52 | }; 53 | 54 | #endif 55 | 56 | 57 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/FuncHelper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_FSFilter/FuncHelper.cpp -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/FuncHelper.h: -------------------------------------------------------------------------------- 1 | #ifndef __FuncHelper_H 2 | #define __FuncHelper_H 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | #include 9 | #include 10 | #ifdef __cplusplus 11 | } 12 | #endif 13 | 14 | NTSTATUS PrintDeviceName (PVOID vDeviceObject); 15 | NTSTATUS PrintIrp (PIRP vIrp); 16 | #endif -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/SYS_FSFilter.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_FSFilter", "SYS_FSFilter.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/SYS_FSFilter.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_FSFilter/SYS_FSFilter.vcproj -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_FSFilter 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ 9 | FuncHelper.cpp -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_FSFilter/SysMain.cpp -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/SysMain.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_FSFilter/SysMain.h -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/fastIO.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_FSFilter/fastIO.h -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_FSFilter/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/SYS_MinFsFilter.inf: -------------------------------------------------------------------------------- 1 | ;;; 2 | ;;; NPminifilter 3 | ;;; 4 | ;;; 5 | ;;; Copyright (c) 1999 - 2001, Microsoft Corporation 6 | ;;; 7 | 8 | [Version] 9 | Signature = "$Windows NT$" 10 | Class = "ActivityMonitor" ;This is determined by the work this filter driver does 11 | ClassGuid = {b86dff51-a31e-4bac-b3cf-e8cfe75c9fc2} ;This value is determined by the Class 12 | Provider = %Msft% 13 | DriverVer = 06/16/2007,1.0.0.1 14 | CatalogFile = NPminifilter.cat 15 | 16 | 17 | [DestinationDirs] 18 | DefaultDestDir = 12 19 | MiniFilter.DriverFiles = 12 ;%windir%\system32\drivers 20 | 21 | ;; 22 | ;; Default install sections 23 | ;; 24 | 25 | [DefaultInstall] 26 | OptionDesc = %ServiceDescription% 27 | CopyFiles = MiniFilter.DriverFiles 28 | 29 | [DefaultInstall.Services] 30 | AddService = %ServiceName%,,MiniFilter.Service 31 | 32 | ;; 33 | ;; Default uninstall sections 34 | ;; 35 | 36 | [DefaultUninstall] 37 | DelFiles = MiniFilter.DriverFiles 38 | 39 | [DefaultUninstall.Services] 40 | DelService = %ServiceName%,0x200 ;Ensure service is stopped before deleting 41 | 42 | ; 43 | ; Services Section 44 | ; 45 | 46 | [MiniFilter.Service] 47 | DisplayName = %ServiceName% 48 | Description = %ServiceDescription% 49 | ServiceBinary = %12%\%DriverName%.sys ;%windir%\system32\drivers\ 50 | Dependencies = "FltMgr" 51 | ServiceType = 2 ;SERVICE_FILE_SYSTEM_DRIVER 52 | StartType = 3 ;SERVICE_DEMAND_START 53 | ErrorControl = 1 ;SERVICE_ERROR_NORMAL 54 | LoadOrderGroup = "FSFilter Activity Monitor" 55 | AddReg = MiniFilter.AddRegistry 56 | 57 | ; 58 | ; Registry Modifications 59 | ; 60 | 61 | [MiniFilter.AddRegistry] 62 | HKR,,"DebugFlags",0x00010001 ,0x0 63 | HKR,"Instances","DefaultInstance",0x00000000,%DefaultInstance% 64 | HKR,"Instances\"%Instance1.Name%,"Altitude",0x00000000,%Instance1.Altitude% 65 | HKR,"Instances\"%Instance1.Name%,"Flags",0x00010001,%Instance1.Flags% 66 | 67 | ; 68 | ; Copy Files 69 | ; 70 | 71 | [MiniFilter.DriverFiles] 72 | %DriverName%.sys 73 | 74 | [SourceDisksFiles] 75 | NPminifilter.sys = 1,, 76 | 77 | [SourceDisksNames] 78 | 1 = %DiskId1%,,, 79 | 80 | ;; 81 | ;; String Section 82 | ;; 83 | 84 | [Strings] 85 | Msft = "test" 86 | ServiceDescription = "NPminifilter Mini-Filter Driver" 87 | ServiceName = "SYS_MinFsFilter" 88 | DriverName = "SYS_MinFsFilter" 89 | DiskId1 = "NPminifilter Device Installation Disk" 90 | 91 | ;Instances specific information. 92 | DefaultInstance = "NPminifilter Instance" 93 | Instance1.Name = "NPminifilter Instance" 94 | Instance1.Altitude = "370030" 95 | Instance1.Flags = 0x0 ; Allow all attachments 96 | 97 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/SYS_MinFsFilter.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_MinFsFilter", "SYS_MinFsFilter.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/SYS_MinFsFilter.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_MinFsFilter/SYS_MinFsFilter.vcproj -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_MinFsFilter 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | TARGETLIBS=D:\MSDDK\WDK\lib\wlh\i386\fltMgr.lib 6 | 7 | INCLUDES=$(BASEDIR)\inc;\ 8 | $(BASEDIR)\inc\ddk;\ 9 | 10 | SOURCES=SysMain.cpp\ 11 | -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/SYS_MinFsFilter/SysMain.cpp -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/SysMain.h: -------------------------------------------------------------------------------- 1 | #ifndef SysMainH 2 | #define SysMainH 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | #include 9 | #include 10 | #include 11 | #include 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | 16 | #define Debug(_X_) { KdPrint(("SYS_MinFsFilter:"));KdPrint((_X_));KdPrint(("\n")); } 17 | 18 | #define IsNeedFilterType(_X_) (_X_->DeviceType == FILE_DEVICE_DISK_FILE_SYSTEM) 19 | 20 | NTSTATUS FltFilterUnload(FLT_FILTER_UNLOAD_FLAGS vFlags); 21 | NTSTATUS FltInstanceSetup( 22 | IN PCFLT_RELATED_OBJECTS FltObjects, 23 | IN FLT_INSTANCE_SETUP_FLAGS Flags, 24 | IN DEVICE_TYPE VolumeDeviceType, 25 | IN FLT_FILESYSTEM_TYPE VolumeFilesystemType ); 26 | 27 | FLT_PREOP_CALLBACK_STATUS FltPreCreate( 28 | IN OUT PFLT_CALLBACK_DATA Data, 29 | IN PCFLT_RELATED_OBJECTS FltObjects, 30 | OUT PVOID *CompletionContext ); 31 | 32 | FLT_POSTOP_CALLBACK_STATUS FltPostCreate( 33 | __inout PFLT_CALLBACK_DATA Data, 34 | __in PCFLT_RELATED_OBJECTS FltObjects, 35 | __in_opt PVOID CompletionContext, 36 | __in FLT_POST_OPERATION_FLAGS Flags ); 37 | #endif -------------------------------------------------------------------------------- /文件系统过滤/src/SYS_MinFsFilter/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /文件系统过滤/src/ZSharefile/define.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/文件系统过滤/src/ZSharefile/define.h -------------------------------------------------------------------------------- /文件系统过滤/src/ZSharefile/mc_dllhelper.hpp: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | #ifndef MC_DLLHELPER_H 3 | #define MC_DLLHELPER_H 4 | //-------------------------------------------------- 5 | #include 6 | //-------------------------------------------------- 7 | #define Kinkoo_InterfaceExport(_X_) \ 8 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_GetInterface(void** IPtr) \ 9 | { \ 10 | if(0 == IPtr) return false; \ 11 | *IPtr = new _X_; \ 12 | return true; \ 13 | } \ 14 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_FreeInterface(void* IPtr) \ 15 | { \ 16 | if(0 == IPtr) return false; \ 17 | delete (_X_*)IPtr; \ 18 | return true; \ 19 | } \ 20 | //-------------------------------------------------- 21 | typedef bool (__cdecl *FuncKinkoo_GetInterface)(void** IPtr); 22 | typedef bool (__cdecl *FuncKinkoo_FreeInterface)(void* IPtr); 23 | //-------------------------------------------------- 24 | template 25 | class mc_dllheper 26 | { 27 | public: 28 | mc_dllheper(); 29 | 30 | bool load (char* vDllName); 31 | bool free (void); 32 | 33 | Interface_Type *operator->() const 34 | { 35 | return m_Interface; 36 | } 37 | 38 | Interface_Type* m_Interface; 39 | HMODULE m_Instance; 40 | bool m_Avaliable; 41 | }; 42 | //-------------------------------------------------- 43 | template 44 | mc_dllheper::mc_dllheper() 45 | { 46 | m_Interface = 0; 47 | m_Instance = 0; 48 | m_Avaliable = false; 49 | } 50 | //-------------------------------------------------- 51 | template 52 | bool mc_dllheper::load(char *vDllName) 53 | { 54 | if(true == m_Avaliable) 55 | return true; 56 | 57 | m_Instance = LoadLibraryA(vDllName); 58 | if(0 == m_Instance) 59 | { 60 | return false; 61 | } 62 | 63 | FuncKinkoo_GetInterface tFunc = (FuncKinkoo_GetInterface)GetProcAddress(m_Instance, "Kinkoo_GetInterface"); 64 | if(0 == tFunc) 65 | { 66 | FreeLibrary(m_Instance); 67 | return false; 68 | } 69 | 70 | tFunc((void**)&m_Interface); 71 | if(0 == m_Interface) 72 | { 73 | FreeLibrary(m_Instance); 74 | return false; 75 | } 76 | 77 | m_Avaliable = true; 78 | return true; 79 | } 80 | //-------------------------------------------------- 81 | template 82 | bool mc_dllheper::free(void) 83 | { 84 | if(false == m_Avaliable) 85 | return true; 86 | 87 | FuncKinkoo_FreeInterface tFunc = (FuncKinkoo_FreeInterface)GetProcAddress(m_Instance, "Kinkoo_FreeInterface"); 88 | tFunc(m_Interface); 89 | 90 | if(0 != m_Instance) 91 | FreeLibrary(m_Instance); 92 | 93 | m_Interface = 0; 94 | m_Instance = 0; 95 | m_Avaliable = false; 96 | return true; 97 | } 98 | //-------------------------------------------------- 99 | #endif 100 | -------------------------------------------------------------------------------- /文件系统过滤/src/ZSharefile/mi_kbdfilter.h: -------------------------------------------------------------------------------- 1 | #ifndef __MI_KBDFILTERH_ 2 | #define __MI_KBDFILTERH_ 3 | //--------------------------------------------------------------------------- 4 | #define DLL_NAME_KBDFILTER "DLL_KbdFilter" 5 | //--------------------------------------------------------------------------- 6 | //#define KBDSUCCESS 0 7 | #define KBDERROR -1 8 | //--------------------------------------------------------------------------- 9 | #define ENABLE 1 10 | #define INTERCEPT 2 /* nRet & INTERCEPT*/ 11 | //--------------------------------------------------------------------------- 12 | struct MI_KbdFilter 13 | { 14 | virtual bool OnLoad() = 0; 15 | virtual void OnExit() = 0; 16 | 17 | virtual int Enable() = 0; 18 | virtual int Disabled() = 0; 19 | 20 | virtual int GetStatus() = 0; 21 | 22 | virtual int Intercept(unsigned short* tBuf, int* tLen) = 0; 23 | virtual int CancelIntercept() = 0; 24 | }; 25 | //--------------------------------------------------------------------------- 26 | #endif -------------------------------------------------------------------------------- /网络过滤/src/EXE_SocketTest/Client.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/网络过滤/src/EXE_SocketTest/Client.vcproj -------------------------------------------------------------------------------- /网络过滤/src/EXE_SocketTest/ClientMain.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #pragma comment(lib,"WS2_32") 4 | using namespace std; 5 | void main() 6 | { 7 | WORD wVersionRequested; 8 | WSADATA wsaData; 9 | int err; 10 | 11 | wVersionRequested = MAKEWORD( 1, 1 ); 12 | 13 | err = WSAStartup( wVersionRequested, &wsaData ); 14 | if ( err != 0 ) { 15 | return; 16 | } 17 | 18 | if ( LOBYTE( wsaData.wVersion ) != 1 || 19 | HIBYTE( wsaData.wVersion ) != 1 ) { 20 | WSACleanup( ); 21 | return; 22 | } 23 | SOCKET fd; 24 | struct sockaddr_in addr; 25 | char buf[100]="client:nihao"; 26 | 27 | printf("before socket\n");getchar(); 28 | fd=socket(AF_INET,SOCK_STREAM,0); 29 | printf("after socket\n");getchar(); 30 | 31 | addr.sin_family=AF_INET; 32 | addr.sin_addr.S_un.S_addr=inet_addr("192.168.20.10"); 33 | addr.sin_port=htons(6010); 34 | 35 | printf("before connect\n");getchar(); 36 | connect(fd,( sockaddr *)&addr,sizeof(addr)); 37 | printf("after connect\n");getchar(); 38 | 39 | printf("before send\n");getchar(); 40 | send(fd,buf,100,0); 41 | printf("after send\n");getchar(); 42 | 43 | printf("before reve\n");getchar(); 44 | recv(fd,buf,100,0); 45 | printf("after revc\n");getchar(); 46 | 47 | cout< 9 | #include 10 | #include 11 | #ifdef __cplusplus 12 | } 13 | #endif 14 | 15 | NTSTATUS PrintDeviceName (PVOID vDeviceObject); 16 | NTSTATUS PrintIrp (PIRP vIrp); 17 | #endif -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/SYS_FilterTDI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_FilterTDI", "SYS_FilterTDI.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/SYS_FilterTDI.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/网络过滤/src/SYS_FilterTDI/SYS_FilterTDI.vcproj -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_FilterTDI 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ 9 | FuncHelper.cpp -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/网络过滤/src/SYS_FilterTDI/SysMain.cpp -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/SysMain.h: -------------------------------------------------------------------------------- 1 | #ifndef SysMainH 2 | #define SysMainH 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | #include 9 | #include 10 | #include 11 | #ifdef __cplusplus 12 | } 13 | #endif 14 | 15 | #include 16 | #include 17 | #include "FuncHelper.h" 18 | 19 | #define TDI_ADDRESS_MAX_LENGTH TDI_ADDRESS_LENGTH_OSI_TSAP 20 | #define TA_ADDRESS_MAX (sizeof(TA_ADDRESS) - 1 + TDI_ADDRESS_MAX_LENGTH) 21 | #define TDI_ADDRESS_INFO_MAX (sizeof(TDI_ADDRESS_INFO) - 1 + TDI_ADDRESS_MAX_LENGTH) 22 | 23 | #define Debug(_X_) { KdPrint(("SYS_FilterTDI:"));KdPrint((_X_));KdPrint(("\n")); } 24 | 25 | typedef struct _MyDEVICE_EXTENSION 26 | { 27 | PDEVICE_OBJECT LowDeviceObj; 28 | }MYDEVICE_EXTENSION, *PMYDEVICE_EXTENSION; 29 | 30 | #endif -------------------------------------------------------------------------------- /网络过滤/src/SYS_FilterTDI/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /键盘过滤/doc/SYS_KbdFilter.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/doc/SYS_KbdFilter.pdb -------------------------------------------------------------------------------- /键盘过滤/doc/SYS_KbdFilter.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/doc/SYS_KbdFilter.sys -------------------------------------------------------------------------------- /键盘过滤/doc/mi_kbdfilter.h: -------------------------------------------------------------------------------- 1 | #ifndef __MI_KBDFILTERH_ 2 | #define __MI_KBDFILTERH_ 3 | //--------------------------------------------------------------------------- 4 | #define DLL_NAME_KBDFILTER "DLL_KbdFilter" 5 | //--------------------------------------------------------------------------- 6 | //#define KBDSUCCESS 0 7 | #define KBDERROR -1 8 | //--------------------------------------------------------------------------- 9 | #define ENABLE 1 10 | #define INTERCEPT 2 /* nRet & INTERCEPT*/ 11 | //--------------------------------------------------------------------------- 12 | struct MI_KbdFilter 13 | { 14 | virtual bool OnLoad() = 0; 15 | virtual void OnExit() = 0; 16 | 17 | virtual int Enable() = 0; 18 | virtual int Disabled() = 0; 19 | 20 | virtual int GetStatus() = 0; 21 | 22 | virtual int Intercept(unsigned short* tBuf, int* tLen) = 0; 23 | virtual int CancelIntercept() = 0; 24 | }; 25 | //--------------------------------------------------------------------------- 26 | #endif -------------------------------------------------------------------------------- /键盘过滤/doc/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/doc/readme.txt -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/DLLMain.cpp: -------------------------------------------------------------------------------- 1 | #include "DLLMain.h" 2 | //--------------------------------------------------------------------------- 3 | HINSTANCE __MyInstance__ = 0; 4 | //--------------------------------------------------------------------------- 5 | BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpvReserved) 6 | { 7 | switch(fdwReason) 8 | { 9 | case DLL_PROCESS_ATTACH: 10 | __MyInstance__ = hInstDll; 11 | DisableThreadLibraryCalls(__MyInstance__); 12 | break; 13 | 14 | case DLL_PROCESS_DETACH: 15 | case DLL_THREAD_ATTACH: 16 | case DLL_THREAD_DETACH: 17 | break; 18 | } 19 | 20 | return true; 21 | } 22 | //--------------------------------------------------------------------------- 23 | int main(void) 24 | { 25 | 26 | MC_KernelWork tKernelWork; 27 | if(false == tKernelWork.OnLoad()) 28 | { 29 | printf("onload fail\n"); 30 | tKernelWork.OnExit(); 31 | return 0; 32 | } 33 | getchar(); 34 | printf("enable test \n"); 35 | printf("cur status: %d\n",tKernelWork.m_CurStatus); 36 | /* 37 | tKernelWork.Disabled(); 38 | printf("after disable status: %d\n",tKernelWork.m_CurStatus); 39 | getchar();*/ 40 | 41 | 42 | tKernelWork.Enable(); 43 | printf("after enable status: %d\n",tKernelWork.m_CurStatus); 44 | getchar(); 45 | 46 | tKernelWork.CancelIntercept(); 47 | printf("after CancelIntercept status: %d\n",tKernelWork.m_CurStatus); 48 | getchar(); 49 | 50 | unsigned short tBuf[10] = {0}; 51 | int tLen = sizeof(tBuf); 52 | int total = tKernelWork.Intercept(tBuf,&tLen); 53 | getchar(); 54 | tLen = sizeof(tBuf); 55 | total = tKernelWork.Intercept(tBuf,&tLen); 56 | printf("after Intercept status: %d\n",tKernelWork.m_CurStatus); 57 | getchar(); 58 | 59 | printf("total:%d,tLen:%d\n",total,tLen); 60 | for(int i=0; i 5 | 6 | #include "../ZSharefile/define.h" 7 | #include "../ZSharefile/mc_dllhelper.hpp" 8 | 9 | #include "LoadDriver.h" 10 | #include "MC_KernelWork.h" 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/DLL_KbdFilter.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DLL_KbdFilter", "DLL_KbdFilter.vcproj", "{9A29E363-904D-4CB9-B96D-1A7389C7AA79}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Debug|Win32.Build.0 = Debug|Win32 14 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.ActiveCfg = Release|Win32 15 | {9A29E363-904D-4CB9-B96D-1A7389C7AA79}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/DLL_KbdFilter.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/src/DLL_KbdFilter/DLL_KbdFilter.vcproj -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/LoadDriver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/src/DLL_KbdFilter/LoadDriver.cpp -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/LoadDriver.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOAD_DRIVER_H_ 2 | #define _LOAD_DRIVER_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | //#include "MC_RegHelper.hpp" 8 | 9 | #pragma comment(lib, "Advapi32.lib") 10 | 11 | BOOL LoadNTDriverA (char* lpszDriverName,char* lpszDriverPath); 12 | BOOL UnloadNTDriverA(char* szSvrName); 13 | 14 | BOOL LoadNTDriverW (WCHAR* lpszDriverName,WCHAR* lpszDriverPath); 15 | BOOL UnloadNTDriverW(WCHAR * szSvrName); 16 | 17 | bool Start (char* vServiceName); 18 | bool Stop (char* vServiceName); 19 | bool IsExists (char* vServiceName); 20 | bool IsRunning (char* szSvrName); 21 | bool Remove (char* vServiceName); 22 | bool SafeBootUnReg (char* vServiceName); 23 | 24 | #endif -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/MC_KernelWork.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/src/DLL_KbdFilter/MC_KernelWork.cpp -------------------------------------------------------------------------------- /键盘过滤/src/DLL_KbdFilter/MC_KernelWork.h: -------------------------------------------------------------------------------- 1 | #ifndef __MC_KERNELWORKH_ 2 | #define __MC_KERNELWORKH_ 3 | 4 | #include "../ZSharefile/mi_kbdfilter.h" 5 | #include "DLLMain.h" 6 | 7 | 8 | #include 9 | 10 | #define MAX_MAKECODE 4096 11 | 12 | class MC_KernelWork : public MI_KbdFilter 13 | { 14 | public: 15 | MC_KernelWork(void); 16 | ~MC_KernelWork(void); 17 | 18 | virtual bool OnLoad(); 19 | virtual void OnExit(); 20 | 21 | virtual int Enable(); 22 | virtual int Disabled(); 23 | 24 | virtual int GetStatus(); 25 | 26 | virtual int Intercept(unsigned short* tBuf, int* tLen); 27 | virtual int CancelIntercept(); 28 | 29 | public: 30 | static DWORD WINAPI ThreadProc(LPVOID lpParameter) 31 | { 32 | MC_KernelWork* tThis = (MC_KernelWork*)lpParameter; 33 | tThis->KbdThreadProc(); 34 | return 0; 35 | } 36 | 37 | private: 38 | int KbdThreadProc(); 39 | 40 | public: 41 | bool m_Avaliable; 42 | 43 | HANDLE m_ShareEvent; 44 | HANDLE m_Thread; 45 | bool m_ThreadTerminate; 46 | 47 | //InterlockedCompareExchange(); 48 | LONG m_SpinLock; 49 | std::list m_MakeCode; 50 | 51 | int m_CurStatus; 52 | }; 53 | 54 | #endif 55 | 56 | 57 | -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/MakeSys.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | REM ------------------------------------------------------------------------- 3 | REM Write by haozhe 2008-11-24 4 | REM 5 | REM _OBJNAME_ ===> Current Work driver letter 6 | REM _WORKDRV_ ===> Current Work driver letter 7 | REM _OBJPATH_ ===> Current Output file path 8 | REM _MAKEENV_ ===> Current DDK compile environment W2K, WXP, WNET, WLH 9 | REM ------------------------------------------------------------------------- 10 | 11 | set _OBJNAME_=HelloDDK.sys 12 | set _WORKDRV_=%cd:~0,2% 13 | set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 14 | set _MAKEENV_=WXP 15 | set _WDKMODE_=1 16 | if "%1"=="checked" set _OBJPATH_=..\..\..\bin\debug\plugin\devicemon 17 | if "%1"=="free" set _OBJPATH_=..\..\..\bin\release\plugin\devicemon 18 | 19 | REM ------------------------------------------------------------------------- 20 | 21 | if "%1"=="" goto ERROR 22 | if "%_WDKMODE_%"=="1" goto WDKMODE 23 | 24 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\Win2000 25 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 26 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 27 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 28 | if "%_MAKEENV_%"=="W2K" if "%1"=="checked" goto MAKEWORK 29 | 30 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _DDKPATH_=d:\MSDDK\Win2000 31 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 32 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\build -cewf -386 -M 1 33 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 34 | if "%_MAKEENV_%"=="W2K" if "%1"=="free" goto MAKEWORK 35 | 36 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _DDKPATH_=d:\MSDDK\WinXP 37 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 38 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 39 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" set _WKSTEP3_=copy objchk\i386\%_OBJNAME_% %_OBJPATH_% 40 | if "%_MAKEENV_%"=="WXP" if "%1"=="checked" goto MAKEWORK 41 | 42 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _DDKPATH_=d:\MSDDK\WinXP 43 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP1_=CALL %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %1 44 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 45 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" set _WKSTEP3_=copy objfre\i386\%_OBJNAME_% %_OBJPATH_% 46 | if "%_MAKEENV_%"=="WXP" if "%1"=="free" goto MAKEWORK 47 | 48 | goto ERROR 49 | 50 | :WDKMODE 51 | if "%1"=="checked" set _MODE_=chk 52 | if "%1"=="free" set _MODE_=fre 53 | 54 | set NO_SAFESEH=1 55 | set _DDKPATH_=d:\MSDDK\WDK 56 | set _WKSTEP1_=call %_DDKPATH_%\bin\setenv.bat %_DDKPATH_% %_MODE_% %_MAKEENV_% 57 | set _WKSTEP2_=%_DDKPATH_%\bin\x86\build -cewf -386 -M 1 58 | set _WKSTEP3_=copy obj%_MODE_%_%_MAKEENV_%_x86\i386\%_OBJNAME_% %_OBJPATH_% 59 | goto MAKEWORK 60 | 61 | :MAKEWORK 62 | %_WKSTEP1_% 63 | %_WORKDRV_% 64 | %_WKSTEP2_% 65 | %_WKSTEP3_% 66 | del %_DDKPATH_%\*.dat 67 | goto EXIT 68 | 69 | :ERROR 70 | echo Please use: MakeSys [checked/free] 71 | 72 | :EXIT 73 | -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/SYS_KbdFilter.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SYS_KbdFilter", "SYS_KbdFilter.vcproj", "{7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|Win32.Build.0 = Debug|Win32 16 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.ActiveCfg = Debug|x64 17 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Debug|x64.Build.0 = Debug|x64 18 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.ActiveCfg = Release|Win32 19 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|Win32.Build.0 = Release|Win32 20 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.ActiveCfg = Release|x64 21 | {7FBBEAEB-EEAA-4DCF-8D14-6262D9A21358}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/SYS_KbdFilter.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/src/SYS_KbdFilter/SYS_KbdFilter.vcproj -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/Sources: -------------------------------------------------------------------------------- 1 | TARGETNAME=SYS_KbdFilter 2 | TARGETTYPE=DRIVER 3 | TARGETPATH=OBJ 4 | 5 | INCLUDES=$(BASEDIR)\inc;\ 6 | $(BASEDIR)\inc\ddk;\ 7 | 8 | SOURCES=SysMain.cpp\ -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/SysMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/src/SYS_KbdFilter/SysMain.cpp -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/SysMain.h: -------------------------------------------------------------------------------- 1 | #ifndef SysMainH 2 | #define SysMainH 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | #include 9 | #include 10 | NTKERNELAPI 11 | NTSTATUS ObReferenceObjectByName( 12 | IN PUNICODE_STRING ObjectName, 13 | IN ULONG Attributes, 14 | IN PACCESS_STATE PassAccesState OPTIONAL, 15 | IN ACCESS_MASK DesiredAccess OPTIONAL, 16 | IN POBJECT_TYPE ObjectType, 17 | IN KPROCESSOR_MODE AccessMode, 18 | IN OUT PVOID PareseContext OPTIONAL, 19 | OUT PVOID * Object 20 | ); 21 | extern POBJECT_TYPE IoDeviceObjectType; 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #include "../ZSharefile/define.h" 27 | #include "../ZSharefile/mi_kbdfilter.h" 28 | 29 | #define Debug(_X_) { KdPrint(("SYS_ComFilter:"));KdPrint((_X_));KdPrint(("\n")); } 30 | 31 | typedef struct _MyDEVICE_EXTENSION 32 | { 33 | PDEVICE_OBJECT LowDeviceObj; 34 | PIRP CurIrp; 35 | }MYDEVICE_EXTENSION, *PMYDEVICE_EXTENSION; 36 | 37 | #endif -------------------------------------------------------------------------------- /键盘过滤/src/SYS_KbdFilter/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source 3 | # file to this component. This file merely indirects to the real make file 4 | # that is shared by all the driver components of the Windows NT DDK 5 | # 6 | 7 | !INCLUDE $(NTMAKEENV)\makefile.def 8 | -------------------------------------------------------------------------------- /键盘过滤/src/ZSharefile/define.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nextzero/WindowsDriver/b98534895bd34152ad5d7cfb24eb68eadd4b1423/键盘过滤/src/ZSharefile/define.h -------------------------------------------------------------------------------- /键盘过滤/src/ZSharefile/mc_dllhelper.hpp: -------------------------------------------------------------------------------- 1 | //-------------------------------------------------- 2 | #ifndef MC_DLLHELPER_H 3 | #define MC_DLLHELPER_H 4 | //-------------------------------------------------- 5 | #include 6 | //-------------------------------------------------- 7 | #define Kinkoo_InterfaceExport(_X_) \ 8 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_GetInterface(void** IPtr) \ 9 | { \ 10 | if(0 == IPtr) return false; \ 11 | *IPtr = new _X_; \ 12 | return true; \ 13 | } \ 14 | extern "C" __declspec(dllexport) bool __cdecl Kinkoo_FreeInterface(void* IPtr) \ 15 | { \ 16 | if(0 == IPtr) return false; \ 17 | delete (_X_*)IPtr; \ 18 | return true; \ 19 | } \ 20 | //-------------------------------------------------- 21 | typedef bool (__cdecl *FuncKinkoo_GetInterface)(void** IPtr); 22 | typedef bool (__cdecl *FuncKinkoo_FreeInterface)(void* IPtr); 23 | //-------------------------------------------------- 24 | template 25 | class mc_dllheper 26 | { 27 | public: 28 | mc_dllheper(); 29 | 30 | bool load (char* vDllName); 31 | bool free (void); 32 | 33 | Interface_Type *operator->() const 34 | { 35 | return m_Interface; 36 | } 37 | 38 | Interface_Type* m_Interface; 39 | HMODULE m_Instance; 40 | bool m_Avaliable; 41 | }; 42 | //-------------------------------------------------- 43 | template 44 | mc_dllheper::mc_dllheper() 45 | { 46 | m_Interface = 0; 47 | m_Instance = 0; 48 | m_Avaliable = false; 49 | } 50 | //-------------------------------------------------- 51 | template 52 | bool mc_dllheper::load(char *vDllName) 53 | { 54 | if(true == m_Avaliable) 55 | return true; 56 | 57 | m_Instance = LoadLibraryA(vDllName); 58 | if(0 == m_Instance) 59 | { 60 | return false; 61 | } 62 | 63 | FuncKinkoo_GetInterface tFunc = (FuncKinkoo_GetInterface)GetProcAddress(m_Instance, "Kinkoo_GetInterface"); 64 | if(0 == tFunc) 65 | { 66 | FreeLibrary(m_Instance); 67 | return false; 68 | } 69 | 70 | tFunc((void**)&m_Interface); 71 | if(0 == m_Interface) 72 | { 73 | FreeLibrary(m_Instance); 74 | return false; 75 | } 76 | 77 | m_Avaliable = true; 78 | return true; 79 | } 80 | //-------------------------------------------------- 81 | template 82 | bool mc_dllheper::free(void) 83 | { 84 | if(false == m_Avaliable) 85 | return true; 86 | 87 | FuncKinkoo_FreeInterface tFunc = (FuncKinkoo_FreeInterface)GetProcAddress(m_Instance, "Kinkoo_FreeInterface"); 88 | tFunc(m_Interface); 89 | 90 | if(0 != m_Instance) 91 | FreeLibrary(m_Instance); 92 | 93 | m_Interface = 0; 94 | m_Instance = 0; 95 | m_Avaliable = false; 96 | return true; 97 | } 98 | //-------------------------------------------------- 99 | #endif 100 | -------------------------------------------------------------------------------- /键盘过滤/src/ZSharefile/mi_kbdfilter.h: -------------------------------------------------------------------------------- 1 | #ifndef __MI_KBDFILTERH_ 2 | #define __MI_KBDFILTERH_ 3 | //--------------------------------------------------------------------------- 4 | #define DLL_NAME_KBDFILTER "DLL_KbdFilter" 5 | //--------------------------------------------------------------------------- 6 | //#define KBDSUCCESS 0 7 | #define KBDERROR -1 8 | //--------------------------------------------------------------------------- 9 | #define ENABLE 1 10 | #define INTERCEPT 2 /* nRet & INTERCEPT*/ 11 | //--------------------------------------------------------------------------- 12 | struct MI_KbdFilter 13 | { 14 | virtual bool OnLoad() = 0; 15 | virtual void OnExit() = 0; 16 | 17 | virtual int Enable() = 0; 18 | virtual int Disabled() = 0; 19 | 20 | virtual int GetStatus() = 0; 21 | 22 | virtual int Intercept(unsigned short* tBuf, int* tLen) = 0; 23 | virtual int CancelIntercept() = 0; 24 | }; 25 | //--------------------------------------------------------------------------- 26 | #endif --------------------------------------------------------------------------------