├── doc ├── title_img.png └── GYWDK-DriverManager使用说明.pdf ├── GYWDK-DriverManager ├── .vs │ └── GYWDK-DriverManager │ │ └── v14 │ │ └── .suo ├── GYWDK-DriverManager │ ├── dllmain.cpp │ ├── GYDriverManager.cpp │ ├── GYWDK-DriverManager.cpp │ ├── SingleInstanceMacro.h │ ├── stdafx.cpp │ ├── targetver.h │ ├── SingleInstanceDedicated.h │ ├── GYWDK-DriverManager.vcxproj.user │ ├── stdafx.h │ ├── GYDriverManager.h │ ├── GYWDK-DriverManager.vcxproj.filters │ ├── ReadMe.txt │ └── GYWDK-DriverManager.vcxproj └── GYWDK-DriverManager.sln ├── GYWDK-DriverLoader └── GYWDK-DriverLoader │ ├── GYWDK-DriverLoader │ ├── resource.h │ ├── GYWDK-DriverLoader.rc │ ├── GYWDK-DriverLoader.aps │ ├── GYWDK-DriverLoaderDlg.cpp │ ├── res │ │ ├── GYWDK-DriverLoader.ico │ │ └── GYWDKDriverLoader.rc2 │ ├── stdafx.cpp │ ├── targetver.h │ ├── GYWDK-DriverLoader.h │ ├── GYWDK-DriverLoaderDlg.h │ ├── stdafx.h │ ├── GYWDK-DriverLoader.vcxproj.filters │ ├── GYWDK-DriverLoader.cpp │ ├── ReadMe.txt │ └── GYWDK-DriverLoader.vcxproj │ ├── .vs │ └── GYWDK-DriverLoader │ │ └── v14 │ │ └── .suo │ └── GYWDK-DriverLoader.sln └── README.md /doc/title_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/doc/title_img.png -------------------------------------------------------------------------------- /doc/GYWDK-DriverManager使用说明.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/doc/GYWDK-DriverManager使用说明.pdf -------------------------------------------------------------------------------- /GYWDK-DriverManager/.vs/GYWDK-DriverManager/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverManager/.vs/GYWDK-DriverManager/v14/.suo -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/dllmain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverManager/GYWDK-DriverManager/dllmain.cpp -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/GYDriverManager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverManager/GYWDK-DriverManager/GYDriverManager.cpp -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/GYWDK-DriverManager.cpp: -------------------------------------------------------------------------------- 1 | // GYWDK-DriverManager.cpp : Defines the exported functions for the DLL application. 2 | // 3 | 4 | #include "stdafx.h" 5 | 6 | 7 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/SingleInstanceMacro.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverManager/GYWDK-DriverManager/SingleInstanceMacro.h -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/resource.h -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/.vs/GYWDK-DriverLoader/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/.vs/GYWDK-DriverLoader/v14/.suo -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.rc -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.aps -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoaderDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoaderDlg.cpp -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/res/GYWDK-DriverLoader.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/res/GYWDK-DriverLoader.ico -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/res/GYWDKDriverLoader.rc2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhugegy/Windows-Kernel-Driver-Loader/HEAD/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/res/GYWDKDriverLoader.rc2 -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/stdafx.cpp: -------------------------------------------------------------------------------- 1 | 2 | // stdafx.cpp : source file that includes just the standard includes 3 | // GYWDK-DriverLoader.pch will be the pre-compiled header 4 | // stdafx.obj will contain the pre-compiled type information 5 | 6 | #include "stdafx.h" 7 | 8 | 9 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // GYWDK-DriverManager.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/SingleInstanceDedicated.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "SingleInstanceMacro.h" 3 | #include "GYDriverManager.h" 4 | 5 | class CSingleInstanceDedicated 6 | { 7 | public: 8 | CSingleInstanceDedicated() 9 | { 10 | CREATE_SINGLE(CGYDriverManager) 11 | } 12 | 13 | virtual ~CSingleInstanceDedicated() 14 | { 15 | RELEASE_SINGLE(CGYDriverManager) 16 | } 17 | }; 18 | 19 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/GYWDK-DriverManager.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | C:\Users\Administrator\Desktop\GYWDK-DriverLoader\Debug\GYWDK-DriverLoader.exe 5 | WindowsLocalDebugger 6 | 7 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | 10 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 11 | // Windows Header Files: 12 | #include 13 | 14 | 15 | 16 | // TODO: reference additional headers your program requires here 17 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.h: -------------------------------------------------------------------------------- 1 | 2 | // GYWDK-DriverLoader.h : main header file for the PROJECT_NAME application 3 | // 4 | 5 | #pragma once 6 | 7 | #ifndef __AFXWIN_H__ 8 | #error "include 'stdafx.h' before including this file for PCH" 9 | #endif 10 | 11 | #include "resource.h" // main symbols 12 | 13 | // CGYWDKDriverLoaderApp: 14 | // See GYWDK-DriverLoader.cpp for the implementation of this class 15 | // 16 | 17 | class CGYWDKDriverLoaderApp : public CWinApp 18 | { 19 | public: 20 | CGYWDKDriverLoaderApp(); 21 | 22 | // Overrides 23 | public: 24 | virtual BOOL InitInstance(); 25 | 26 | // Implementation 27 | 28 | DECLARE_MESSAGE_MAP() 29 | }; 30 | 31 | extern CGYWDKDriverLoaderApp theApp; -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/GYDriverManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "SingleInstanceMacro.h" 3 | 4 | #include 5 | #include "atlstr.h" 6 | #include 7 | #include 8 | 9 | class CGYDriverManager 10 | { 11 | public: 12 | SINGLE_INSTANCE(CGYDriverManager) 13 | 14 | private: 15 | CGYDriverManager(); 16 | virtual ~CGYDriverManager(); 17 | 18 | private: 19 | TCHAR m_szDriverPath[MAX_PATH]; 20 | CString m_strDriverName; 21 | 22 | CString m_strFeedBackInfo; 23 | 24 | bool m_bIsDriverIntalled; 25 | bool m_bIsDriverStarted; 26 | 27 | public: 28 | int SetDriverPath(const TCHAR *szDriverPath); 29 | int InstallDriver(); 30 | int StartDriver(); 31 | int StopDriver(); 32 | int UninstallDriver(); 33 | 34 | int FlushFeedBackInfo(); 35 | int GetFeedBackInfo(CString& strGiveBackToUser); 36 | }; 37 | 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Windows Kernel Driver Loader 2 | 3 | ![title_img](doc/title_img.png) 4 | 5 | A driver loader tool that helps in the study of Windows kernel. 6 | 7 | Video Demo: [Vimeo](https://vimeo.com/434961824) 8 | 9 | Executable File Download: [Google Drive](https://drive.google.com/drive/folders/1VDc8WPfizfodK9w2Ms7CNlHzCLLhC5qi?usp=sharing) 10 | 11 | Notes: 12 | - A way to grant Ring 0 privilege for user's code (i.e. assigning value to a NULL pointer's pointing address would cause the blue screen error, instead of a specific application's crash) 13 | - The successfully loaded user's code acts as a module binded with the kernel program ntoskrnl.exe 14 | 15 | --- 16 | 17 | # Window内核驱动加载器 18 | 19 | ![title_img](doc/title_img.png) 20 | 21 | 一个驱动加载工具,在Windows内核的学习过程中可以提供帮助。 22 | 23 | 演示视频:[BiliBili](https://www.bilibili.com/video/BV1jz411v74g/) 24 | 25 | 可执行文件下载:[蓝奏云](https://wws.lanzous.com/io5z4e9hk4j) 26 | 27 | 说明: 28 | - 让用户代码在0环权限下运行的途径(比如在代码里给空指针指向的内存赋值,会直接造成系统蓝屏重启,而非仅仅是单体程序的崩溃) 29 | - 成功加载后的用户代码,是内核程序ntoskrnl.exe的一个模块 30 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GYWDK-DriverManager", "GYWDK-DriverManager\GYWDK-DriverManager.vcxproj", "{1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Debug|x64.ActiveCfg = Debug|x64 17 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Debug|x64.Build.0 = Debug|x64 18 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Debug|x86.ActiveCfg = Debug|Win32 19 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Debug|x86.Build.0 = Debug|Win32 20 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Release|x64.ActiveCfg = Release|x64 21 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Release|x64.Build.0 = Release|x64 22 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Release|x86.ActiveCfg = Release|Win32 23 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GYWDK-DriverLoader", "GYWDK-DriverLoader\GYWDK-DriverLoader.vcxproj", "{94695B5C-79C1-4083-9109-CAE2BE04E3BE}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Debug|x64.ActiveCfg = Debug|x64 17 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Debug|x64.Build.0 = Debug|x64 18 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Debug|x86.ActiveCfg = Debug|Win32 19 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Debug|x86.Build.0 = Debug|Win32 20 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Release|x64.ActiveCfg = Release|x64 21 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Release|x64.Build.0 = Release|x64 22 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Release|x86.ActiveCfg = Release|Win32 23 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoaderDlg.h: -------------------------------------------------------------------------------- 1 | 2 | // GYWDK-DriverLoaderDlg.h : header file 3 | // 4 | 5 | #pragma once 6 | 7 | #define DLL_NAME _T("GYWDK-DriverManager.dll") 8 | 9 | typedef int(*pfnDllManagerSetPath)(const TCHAR *szDriverPath, CString& strFeedBack); 10 | typedef int(*pfnDllManagerOperation)(int nOpCode, CString& strFeedBack); 11 | 12 | 13 | // CGYWDKDriverLoaderDlg dialog 14 | class CGYWDKDriverLoaderDlg : public CDialogEx 15 | { 16 | // Construction 17 | public: 18 | CGYWDKDriverLoaderDlg(CWnd* pParent = NULL); // standard constructor 19 | 20 | // Dialog Data 21 | #ifdef AFX_DESIGN_TIME 22 | enum { IDD = IDD_GYWDKDRIVERLOADER_DIALOG }; 23 | #endif 24 | 25 | protected: 26 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 27 | 28 | 29 | // Implementation 30 | protected: 31 | HICON m_hIcon; 32 | 33 | // Generated message map functions 34 | virtual BOOL OnInitDialog(); 35 | afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 36 | afx_msg void OnPaint(); 37 | afx_msg HCURSOR OnQueryDragIcon(); 38 | DECLARE_MESSAGE_MAP() 39 | public: 40 | afx_msg void OnBnClickedButtonChooseFile(); 41 | 42 | private: 43 | pfnDllManagerSetPath m_pfnSetPath; 44 | pfnDllManagerOperation m_pfnOperation; 45 | public: 46 | CString m_strEditFeedBack; 47 | afx_msg void OnDropFiles(HDROP hDropInfo); 48 | CString m_strEditPath; 49 | afx_msg void OnBnClickedButtonInstall(); 50 | afx_msg void OnBnClickedButtonStart(); 51 | afx_msg void OnBnClickedButtonStop(); 52 | afx_msg void OnBnClickedButtonUninstall(); 53 | afx_msg void OnClose(); 54 | }; 55 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/stdafx.h: -------------------------------------------------------------------------------- 1 | 2 | // stdafx.h : include file for standard system include files, 3 | // or project specific include files that are used frequently, 4 | // but are changed infrequently 5 | 6 | #pragma once 7 | 8 | #ifndef VC_EXTRALEAN 9 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 10 | #endif 11 | 12 | #include "targetver.h" 13 | 14 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit 15 | 16 | // turns off MFC's hiding of some common and often safely ignored warning messages 17 | #define _AFX_ALL_WARNINGS 18 | 19 | #include // MFC core and standard components 20 | #include // MFC extensions 21 | 22 | 23 | #include // MFC Automation classes 24 | 25 | 26 | 27 | #ifndef _AFX_NO_OLE_SUPPORT 28 | #include // MFC support for Internet Explorer 4 Common Controls 29 | #endif 30 | #ifndef _AFX_NO_AFXCMN_SUPPORT 31 | #include // MFC support for Windows Common Controls 32 | #endif // _AFX_NO_AFXCMN_SUPPORT 33 | 34 | #include // MFC support for ribbons and control bars 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | #ifdef _UNICODE 45 | #if defined _M_IX86 46 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 47 | #elif defined _M_X64 48 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 49 | #else 50 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 51 | #endif 52 | #endif 53 | 54 | 55 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/GYWDK-DriverManager.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | 38 | 39 | Source Files 40 | 41 | 42 | Source Files 43 | 44 | 45 | Source Files 46 | 47 | 48 | Source Files 49 | 50 | 51 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | DYNAMIC LINK LIBRARY : GYWDK-DriverManager Project Overview 3 | ======================================================================== 4 | 5 | AppWizard has created this GYWDK-DriverManager DLL for you. 6 | 7 | This file contains a summary of what you will find in each of the files that 8 | make up your GYWDK-DriverManager application. 9 | 10 | 11 | GYWDK-DriverManager.vcxproj 12 | This is the main project file for VC++ projects generated using an Application Wizard. 13 | It contains information about the version of Visual C++ that generated the file, and 14 | information about the platforms, configurations, and project features selected with the 15 | Application Wizard. 16 | 17 | GYWDK-DriverManager.vcxproj.filters 18 | This is the filters file for VC++ projects generated using an Application Wizard. 19 | It contains information about the association between the files in your project 20 | and the filters. This association is used in the IDE to show grouping of files with 21 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the 22 | "Source Files" filter). 23 | 24 | GYWDK-DriverManager.cpp 25 | This is the main DLL source file. 26 | 27 | When created, this DLL does not export any symbols. As a result, it 28 | will not produce a .lib file when it is built. If you wish this project 29 | to be a project dependency of some other project, you will either need to 30 | add code to export some symbols from the DLL so that an export library 31 | will be produced, or you can set the Ignore Input Library property to Yes 32 | on the General propert page of the Linker folder in the project's Property 33 | Pages dialog box. 34 | 35 | ///////////////////////////////////////////////////////////////////////////// 36 | Other standard files: 37 | 38 | StdAfx.h, StdAfx.cpp 39 | These files are used to build a precompiled header (PCH) file 40 | named GYWDK-DriverManager.pch and a precompiled types file named StdAfx.obj. 41 | 42 | ///////////////////////////////////////////////////////////////////////////// 43 | Other notes: 44 | 45 | AppWizard uses "TODO:" comments to indicate parts of the source code you 46 | should add to or customize. 47 | 48 | ///////////////////////////////////////////////////////////////////////////// 49 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | 38 | 39 | Source Files 40 | 41 | 42 | Source Files 43 | 44 | 45 | Source Files 46 | 47 | 48 | 49 | 50 | Resource Files 51 | 52 | 53 | 54 | 55 | Resource Files 56 | 57 | 58 | 59 | 60 | Resource Files 61 | 62 | 63 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.cpp: -------------------------------------------------------------------------------- 1 | 2 | // GYWDK-DriverLoader.cpp : Defines the class behaviors for the application. 3 | // 4 | 5 | #include "stdafx.h" 6 | #include "GYWDK-DriverLoader.h" 7 | #include "GYWDK-DriverLoaderDlg.h" 8 | 9 | #ifdef _DEBUG 10 | #define new DEBUG_NEW 11 | #endif 12 | 13 | 14 | // CGYWDKDriverLoaderApp 15 | 16 | BEGIN_MESSAGE_MAP(CGYWDKDriverLoaderApp, CWinApp) 17 | ON_COMMAND(ID_HELP, &CWinApp::OnHelp) 18 | END_MESSAGE_MAP() 19 | 20 | 21 | // CGYWDKDriverLoaderApp construction 22 | 23 | CGYWDKDriverLoaderApp::CGYWDKDriverLoaderApp() 24 | { 25 | // support Restart Manager 26 | m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; 27 | 28 | // TODO: add construction code here, 29 | // Place all significant initialization in InitInstance 30 | } 31 | 32 | 33 | // The one and only CGYWDKDriverLoaderApp object 34 | 35 | CGYWDKDriverLoaderApp theApp; 36 | 37 | 38 | // CGYWDKDriverLoaderApp initialization 39 | 40 | BOOL CGYWDKDriverLoaderApp::InitInstance() 41 | { 42 | // InitCommonControlsEx() is required on Windows XP if an application 43 | // manifest specifies use of ComCtl32.dll version 6 or later to enable 44 | // visual styles. Otherwise, any window creation will fail. 45 | INITCOMMONCONTROLSEX InitCtrls; 46 | InitCtrls.dwSize = sizeof(InitCtrls); 47 | // Set this to include all the common control classes you want to use 48 | // in your application. 49 | InitCtrls.dwICC = ICC_WIN95_CLASSES; 50 | InitCommonControlsEx(&InitCtrls); 51 | 52 | CWinApp::InitInstance(); 53 | 54 | 55 | AfxEnableControlContainer(); 56 | 57 | // Create the shell manager, in case the dialog contains 58 | // any shell tree view or shell list view controls. 59 | CShellManager *pShellManager = new CShellManager; 60 | 61 | // Activate "Windows Native" visual manager for enabling themes in MFC controls 62 | CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); 63 | 64 | // Standard initialization 65 | // If you are not using these features and wish to reduce the size 66 | // of your final executable, you should remove from the following 67 | // the specific initialization routines you do not need 68 | // Change the registry key under which our settings are stored 69 | // TODO: You should modify this string to be something appropriate 70 | // such as the name of your company or organization 71 | SetRegistryKey(_T("Local AppWizard-Generated Applications")); 72 | 73 | CGYWDKDriverLoaderDlg dlg; 74 | m_pMainWnd = &dlg; 75 | INT_PTR nResponse = dlg.DoModal(); 76 | if (nResponse == IDOK) 77 | { 78 | // TODO: Place code here to handle when the dialog is 79 | // dismissed with OK 80 | } 81 | else if (nResponse == IDCANCEL) 82 | { 83 | // TODO: Place code here to handle when the dialog is 84 | // dismissed with Cancel 85 | } 86 | else if (nResponse == -1) 87 | { 88 | TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n"); 89 | TRACE(traceAppMsg, 0, "Warning: if you are using MFC controls on the dialog, you cannot #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n"); 90 | } 91 | 92 | // Delete the shell manager created above. 93 | if (pShellManager != NULL) 94 | { 95 | delete pShellManager; 96 | } 97 | 98 | #ifndef _AFXDLL 99 | ControlBarCleanUp(); 100 | #endif 101 | 102 | // Since the dialog has been closed, return FALSE so that we exit the 103 | // application, rather than start the application's message pump. 104 | return FALSE; 105 | } 106 | 107 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ================================================================================ 2 | MICROSOFT FOUNDATION CLASS LIBRARY : GYWDK-DriverLoader Project Overview 3 | =============================================================================== 4 | 5 | The application wizard has created this GYWDK-DriverLoader application for 6 | you. This application not only demonstrates the basics of using the Microsoft 7 | Foundation Classes but is also a starting point for writing your application. 8 | 9 | This file contains a summary of what you will find in each of the files that 10 | make up your GYWDK-DriverLoader application. 11 | 12 | GYWDK-DriverLoader.vcxproj 13 | This is the main project file for VC++ projects generated using an application wizard. 14 | It contains information about the version of Visual C++ that generated the file, and 15 | information about the platforms, configurations, and project features selected with the 16 | application wizard. 17 | 18 | GYWDK-DriverLoader.vcxproj.filters 19 | This is the filters file for VC++ projects generated using an Application Wizard. 20 | It contains information about the assciation between the files in your project 21 | and the filters. This association is used in the IDE to show grouping of files with 22 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the 23 | "Source Files" filter). 24 | 25 | GYWDK-DriverLoader.h 26 | This is the main header file for the application. It includes other 27 | project specific headers (including Resource.h) and declares the 28 | CGYWDKDriverLoaderApp application class. 29 | 30 | GYWDK-DriverLoader.cpp 31 | This is the main application source file that contains the application 32 | class CGYWDKDriverLoaderApp. 33 | 34 | GYWDK-DriverLoader.rc 35 | This is a listing of all of the Microsoft Windows resources that the 36 | program uses. It includes the icons, bitmaps, and cursors that are stored 37 | in the RES subdirectory. This file can be directly edited in Microsoft 38 | Visual C++. Your project resources are in 1033. 39 | 40 | res\GYWDK-DriverLoader.ico 41 | This is an icon file, which is used as the application's icon. This 42 | icon is included by the main resource file GYWDK-DriverLoader.rc. 43 | 44 | res\GYWDKDriverLoader.rc2 45 | This file contains resources that are not edited by Microsoft 46 | Visual C++. You should place all resources not editable by 47 | the resource editor in this file. 48 | 49 | 50 | ///////////////////////////////////////////////////////////////////////////// 51 | 52 | The application wizard creates one dialog class: 53 | 54 | GYWDK-DriverLoaderDlg.h, GYWDK-DriverLoaderDlg.cpp - the dialog 55 | These files contain your CGYWDKDriverLoaderDlg class. This class defines 56 | the behavior of your application's main dialog. The dialog's template is 57 | in GYWDK-DriverLoader.rc, which can be edited in Microsoft Visual C++. 58 | 59 | ///////////////////////////////////////////////////////////////////////////// 60 | 61 | Help Support: 62 | 63 | hlp\GYWDKDriverLoader.hhp 64 | This file is a help project file. It contains the data needed to 65 | compile the help files into a .chm file. 66 | 67 | hlp\GYWDKDriverLoader.hhc 68 | This file lists the contents of the help project. 69 | 70 | hlp\GYWDKDriverLoader.hhk 71 | This file contains an index of the help topics. 72 | 73 | hlp\afxcore.htm 74 | This file contains the standard help topics for standard MFC 75 | commands and screen objects. Add your own help topics to this file. 76 | 77 | hlp\afxprint.htm 78 | This file contains the help topics for the printing commands. 79 | 80 | makehtmlhelp.bat 81 | This file is used by the build system to compile the help files. 82 | 83 | hlp\Images\*.gif 84 | These are bitmap files required by the standard help file topics for 85 | Microsoft Foundation Class Library standard commands. 86 | 87 | 88 | ///////////////////////////////////////////////////////////////////////////// 89 | 90 | Other Features: 91 | 92 | ActiveX Controls 93 | The application includes support to use ActiveX controls. 94 | 95 | Printing and Print Preview support 96 | The application wizard has generated code to handle the print, print setup, and print preview 97 | commands by calling member functions in the CView class from the MFC library. 98 | 99 | ///////////////////////////////////////////////////////////////////////////// 100 | 101 | Other standard files: 102 | 103 | StdAfx.h, StdAfx.cpp 104 | These files are used to build a precompiled header (PCH) file 105 | named GYWDK-DriverLoader.pch and a precompiled types file named StdAfx.obj. 106 | 107 | Resource.h 108 | This is the standard header file, which defines new resource IDs. 109 | Microsoft Visual C++ reads and updates this file. 110 | 111 | GYWDK-DriverLoader.manifest 112 | Application manifest files are used by Windows XP to describe an applications 113 | dependency on specific versions of Side-by-Side assemblies. The loader uses this 114 | information to load the appropriate assembly from the assembly cache or private 115 | from the application. The Application manifest maybe included for redistribution 116 | as an external .manifest file that is installed in the same folder as the application 117 | executable or it may be included in the executable in the form of a resource. 118 | ///////////////////////////////////////////////////////////////////////////// 119 | 120 | Other notes: 121 | 122 | The application wizard uses "TODO:" to indicate parts of the source code you 123 | should add to or customize. 124 | 125 | If your application uses MFC in a shared DLL, you will need 126 | to redistribute the MFC DLLs. If your application is in a language 127 | other than the operating system's locale, you will also have to 128 | redistribute the corresponding localized resources MFC100XXX.DLL. 129 | For more information on both of these topics, please see the section on 130 | redistributing Visual C++ applications in MSDN documentation. 131 | 132 | ///////////////////////////////////////////////////////////////////////////// 133 | -------------------------------------------------------------------------------- /GYWDK-DriverManager/GYWDK-DriverManager/GYWDK-DriverManager.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {1826AF9C-6661-4CD3-90DC-C4A37AD08FDC} 23 | Win32Proj 24 | GYWDKDriverManager 25 | 8.1 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v140_xp 32 | Unicode 33 | Static 34 | 35 | 36 | DynamicLibrary 37 | false 38 | v140 39 | true 40 | Unicode 41 | Static 42 | 43 | 44 | DynamicLibrary 45 | true 46 | v140 47 | Unicode 48 | 49 | 50 | DynamicLibrary 51 | false 52 | v140 53 | true 54 | Unicode 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | true 76 | 77 | 78 | true 79 | 80 | 81 | false 82 | 83 | 84 | false 85 | 86 | 87 | 88 | Use 89 | Level3 90 | Disabled 91 | WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;GYWDKDRIVERMANAGER_EXPORTS;%(PreprocessorDefinitions) 92 | true 93 | 94 | 95 | Windows 96 | true 97 | 98 | 99 | 100 | 101 | Use 102 | Level3 103 | Disabled 104 | _DEBUG;_WINDOWS;_USRDLL;GYWDKDRIVERMANAGER_EXPORTS;%(PreprocessorDefinitions) 105 | true 106 | 107 | 108 | Windows 109 | true 110 | 111 | 112 | 113 | 114 | Level3 115 | Use 116 | MaxSpeed 117 | true 118 | true 119 | WIN32;NDEBUG;_WINDOWS;_USRDLL;GYWDKDRIVERMANAGER_EXPORTS;%(PreprocessorDefinitions) 120 | true 121 | 122 | 123 | Windows 124 | true 125 | true 126 | true 127 | 128 | 129 | 130 | 131 | Level3 132 | Use 133 | MaxSpeed 134 | true 135 | true 136 | NDEBUG;_WINDOWS;_USRDLL;GYWDKDRIVERMANAGER_EXPORTS;%(PreprocessorDefinitions) 137 | true 138 | 139 | 140 | Windows 141 | true 142 | true 143 | true 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | false 159 | 160 | 161 | false 162 | 163 | 164 | false 165 | 166 | 167 | false 168 | 169 | 170 | 171 | 172 | 173 | 174 | Create 175 | Create 176 | Create 177 | Create 178 | 179 | 180 | 181 | 182 | 183 | -------------------------------------------------------------------------------- /GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader/GYWDK-DriverLoader.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {94695B5C-79C1-4083-9109-CAE2BE04E3BE} 23 | GYWDKDriverLoader 24 | 8.1 25 | MFCProj 26 | 27 | 28 | 29 | Application 30 | true 31 | v140_xp 32 | Unicode 33 | Static 34 | 35 | 36 | Application 37 | false 38 | v140 39 | true 40 | Unicode 41 | Static 42 | 43 | 44 | Application 45 | true 46 | v140 47 | Unicode 48 | Static 49 | 50 | 51 | Application 52 | false 53 | v140 54 | true 55 | Unicode 56 | Static 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | true 78 | 79 | 80 | true 81 | 82 | 83 | false 84 | 85 | 86 | false 87 | 88 | 89 | 90 | Use 91 | Level3 92 | Disabled 93 | WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) 94 | true 95 | 96 | 97 | Windows 98 | 99 | 100 | false 101 | true 102 | _DEBUG;%(PreprocessorDefinitions) 103 | 104 | 105 | 0x0409 106 | _DEBUG;%(PreprocessorDefinitions) 107 | $(IntDir);%(AdditionalIncludeDirectories) 108 | 109 | 110 | 111 | 112 | Use 113 | Level3 114 | Disabled 115 | _WINDOWS;_DEBUG;%(PreprocessorDefinitions) 116 | true 117 | 118 | 119 | Windows 120 | 121 | 122 | false 123 | true 124 | _DEBUG;%(PreprocessorDefinitions) 125 | 126 | 127 | 0x0409 128 | _DEBUG;%(PreprocessorDefinitions) 129 | $(IntDir);%(AdditionalIncludeDirectories) 130 | 131 | 132 | 133 | 134 | Level3 135 | Use 136 | MaxSpeed 137 | true 138 | true 139 | WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) 140 | true 141 | 142 | 143 | Windows 144 | true 145 | true 146 | 147 | 148 | false 149 | true 150 | NDEBUG;%(PreprocessorDefinitions) 151 | 152 | 153 | 0x0409 154 | NDEBUG;%(PreprocessorDefinitions) 155 | $(IntDir);%(AdditionalIncludeDirectories) 156 | 157 | 158 | 159 | 160 | Level3 161 | Use 162 | MaxSpeed 163 | true 164 | true 165 | _WINDOWS;NDEBUG;%(PreprocessorDefinitions) 166 | true 167 | 168 | 169 | Windows 170 | true 171 | true 172 | 173 | 174 | false 175 | true 176 | NDEBUG;%(PreprocessorDefinitions) 177 | 178 | 179 | 0x0409 180 | NDEBUG;%(PreprocessorDefinitions) 181 | $(IntDir);%(AdditionalIncludeDirectories) 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | Create 199 | Create 200 | Create 201 | Create 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | --------------------------------------------------------------------------------