From 0ef9ea5fa52afd365b20fb8543ef40096a5b6632 Mon Sep 17 00:00:00 2001 From: ChengChengCC Date: Sat, 19 Sep 2015 06:07:49 +0800 Subject: [PATCH] Enum DPCTimer On Windows 7 sp 1 x64 --- DpcTimer_x64/DpcTimer.PNG | Bin 0 -> 84792 bytes DpcTimer_x64/DpcTimer/DpcTimer.sln | 26 + DpcTimer_x64/DpcTimer/DpcTimer.suo | Bin 0 -> 12800 bytes DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.aps | Bin 0 -> 89652 bytes DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.cpp | 94 ++ DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.h | 32 + DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.rc | Bin 0 -> 10270 bytes .../DpcTimer/DpcTimer/DpcTimer.vcxproj | 208 +++ .../DpcTimer/DpcTimer.vcxproj.filters | 59 + .../DpcTimer/DpcTimer/DpcTimer.vcxproj.user | 3 + .../DpcTimer/DpcTimer/DpcTimerDlg.cpp | 558 ++++++++ DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.h | 98 ++ DpcTimer_x64/DpcTimer/DpcTimer/ReadMe.txt | 77 ++ .../DpcTimer/DpcTimer/res/DpcTimer.ico | Bin 0 -> 67777 bytes .../DpcTimer/DpcTimer/res/DpcTimer.rc2 | Bin 0 -> 672 bytes DpcTimer_x64/DpcTimer/DpcTimer/resource.h | Bin 0 -> 1604 bytes DpcTimer_x64/DpcTimer/DpcTimer/stdafx.cpp | 8 + DpcTimer_x64/DpcTimer/DpcTimer/stdafx.h | 58 + DpcTimer_x64/DpcTimer/DpcTimer/targetver.h | 8 + DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.c | 444 +++++++ DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.h | 139 ++ DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.sln | 16 + DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.suo | Bin 0 -> 10240 bytes DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj | 62 + .../DpcTimerDrv/DpcTimerDrv.vcxproj.user | 3 + DpcTimer_x64/DpcTimerDrv/clean.bat | 28 + DpcTimer_x64/DpcTimerDrv/ddkbuild.cmd | 1122 +++++++++++++++++ DpcTimer_x64/DpcTimerDrv/makefile | 6 + DpcTimer_x64/DpcTimerDrv/mybuild.bat | 3 + DpcTimer_x64/DpcTimerDrv/readme.txt | 157 +++ DpcTimer_x64/DpcTimerDrv/sources | 9 + DpcTimer_x64/PCHunter64.PNG | Bin 0 -> 115833 bytes DpcTimer_x64/bin/DpcTimer.exe | Bin 0 -> 335872 bytes DpcTimer_x64/bin/DpcTimerDrv.sys | Bin 0 -> 8192 bytes 34 files changed, 3218 insertions(+) create mode 100644 DpcTimer_x64/DpcTimer.PNG create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer.sln create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer.suo create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.aps create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.cpp create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.h create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.rc create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.filters create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.user create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.cpp create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.h create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/ReadMe.txt create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/res/DpcTimer.ico create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/res/DpcTimer.rc2 create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/resource.h create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/stdafx.cpp create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/stdafx.h create mode 100644 DpcTimer_x64/DpcTimer/DpcTimer/targetver.h create mode 100644 DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.c create mode 100644 DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.h create mode 100644 DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.sln create mode 100644 DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.suo create mode 100644 DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj create mode 100644 DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj.user create mode 100644 DpcTimer_x64/DpcTimerDrv/clean.bat create mode 100644 DpcTimer_x64/DpcTimerDrv/ddkbuild.cmd create mode 100644 DpcTimer_x64/DpcTimerDrv/makefile create mode 100644 DpcTimer_x64/DpcTimerDrv/mybuild.bat create mode 100644 DpcTimer_x64/DpcTimerDrv/readme.txt create mode 100644 DpcTimer_x64/DpcTimerDrv/sources create mode 100644 DpcTimer_x64/PCHunter64.PNG create mode 100644 DpcTimer_x64/bin/DpcTimer.exe create mode 100644 DpcTimer_x64/bin/DpcTimerDrv.sys diff --git a/DpcTimer_x64/DpcTimer.PNG b/DpcTimer_x64/DpcTimer.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7d988612b4ac1f27ae3a279017979676970a64f1 GIT binary patch literal 84792 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 Xr%TJ>V-VW|;7>tTMW*zXap3<0yG~ln literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimer/DpcTimer.sln b/DpcTimer_x64/DpcTimer/DpcTimer.sln new file mode 100644 index 0000000..3c72cbf --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DpcTimer", "DpcTimer\DpcTimer.vcxproj", "{87B5C41B-A5BE-434E-A019-C698B70BDE5F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Debug|Win32.ActiveCfg = Debug|Win32 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Debug|Win32.Build.0 = Debug|Win32 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Debug|x64.ActiveCfg = Debug|x64 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Debug|x64.Build.0 = Debug|x64 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Release|Win32.ActiveCfg = Release|Win32 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Release|Win32.Build.0 = Release|Win32 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Release|x64.ActiveCfg = Release|x64 + {87B5C41B-A5BE-434E-A019-C698B70BDE5F}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DpcTimer_x64/DpcTimer/DpcTimer.suo b/DpcTimer_x64/DpcTimer/DpcTimer.suo new file mode 100644 index 0000000000000000000000000000000000000000..800667ec44108e6074771ac6d1cce15b0f9d301c GIT binary patch literal 12800 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 Y@9CE>zxg|rSeO+N8^-T6-*O534?D_^&j0`b literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.aps b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.aps new file mode 100644 index 0000000000000000000000000000000000000000..5a06c358e224ea421480df4e2c785260fcd7e3bf GIT binary patch literal 89652 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 HH#q+fgISFT literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.cpp b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.cpp new file mode 100644 index 0000000..98c4804 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.cpp @@ -0,0 +1,94 @@ + +// DpcTimer.cpp : ¶¨ÒåÓ¦ÓóÌÐòµÄÀàÐÐΪ¡£ +// + +#include "stdafx.h" +#include "DpcTimer.h" +#include "DpcTimerDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +// CDpcTimerApp + +BEGIN_MESSAGE_MAP(CDpcTimerApp, CWinApp) + ON_COMMAND(ID_HELP, &CWinApp::OnHelp) +END_MESSAGE_MAP() + + +// CDpcTimerApp ¹¹Ôì + +CDpcTimerApp::CDpcTimerApp() +{ + // Ö§³ÖÖØÐÂÆô¶¯¹ÜÀíÆ÷ + m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; + + // TODO: ÔÚ´Ë´¦Ìí¼Ó¹¹Ôì´úÂ룬 + // ½«ËùÓÐÖØÒªµÄ³õʼ»¯·ÅÖÃÔÚ InitInstance ÖÐ +} + + +// ΨһµÄÒ»¸ö CDpcTimerApp ¶ÔÏó + +CDpcTimerApp theApp; + + +// CDpcTimerApp ³õʼ»¯ + +BOOL CDpcTimerApp::InitInstance() +{ + // Èç¹ûÒ»¸öÔËÐÐÔÚ Windows XP ÉϵÄÓ¦ÓóÌÐòÇåµ¥Ö¸¶¨Òª + // ʹÓà ComCtl32.dll °æ±¾ 6 »ò¸ü¸ß°æ±¾À´ÆôÓÿÉÊÓ»¯·½Ê½£¬ + //ÔòÐèÒª InitCommonControlsEx()¡£·ñÔò£¬½«ÎÞ·¨´´½¨´°¿Ú¡£ + INITCOMMONCONTROLSEX InitCtrls; + InitCtrls.dwSize = sizeof(InitCtrls); + // ½«ËüÉèÖÃΪ°üÀ¨ËùÓÐÒªÔÚÓ¦ÓóÌÐòÖÐʹÓÃµÄ + // ¹«¹²¿Ø¼þÀà¡£ + InitCtrls.dwICC = ICC_WIN95_CLASSES; + InitCommonControlsEx(&InitCtrls); + + CWinApp::InitInstance(); + + + AfxEnableControlContainer(); + + // ´´½¨ shell ¹ÜÀíÆ÷£¬ÒÔ·À¶Ô»°¿ò°üº¬ + // ÈκΠshell Ê÷ÊÓͼ¿Ø¼þ»ò shell ÁбíÊÓͼ¿Ø¼þ¡£ + CShellManager *pShellManager = new CShellManager; + + // ±ê×¼³õʼ»¯ + // Èç¹ûδʹÓÃÕâЩ¹¦Äܲ¢Ï£Íû¼õС + // ×îÖÕ¿ÉÖ´ÐÐÎļþµÄ´óС£¬ÔòÓ¦ÒƳýÏÂÁÐ + // ²»ÐèÒªµÄÌض¨³õʼ»¯Àý³Ì + // ¸ü¸ÄÓÃÓÚ´æ´¢ÉèÖõÄ×¢²á±íÏî + // TODO: Ó¦Êʵ±Ð޸ĸÃ×Ö·û´®£¬ + // ÀýÈçÐÞ¸ÄΪ¹«Ë¾»ò×éÖ¯Ãû + SetRegistryKey(_T("Ó¦ÓóÌÐòÏòµ¼Éú³ÉµÄ±¾µØÓ¦ÓóÌÐò")); + + CDpcTimerDlg dlg; + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); + if (nResponse == IDOK) + { + // TODO: ÔÚ´Ë·ÅÖô¦ÀíºÎʱÓà + // ¡°È·¶¨¡±À´¹Ø±Õ¶Ô»°¿òµÄ´úÂë + } + else if (nResponse == IDCANCEL) + { + // TODO: ÔÚ´Ë·ÅÖô¦ÀíºÎʱÓà + // ¡°È¡Ïû¡±À´¹Ø±Õ¶Ô»°¿òµÄ´úÂë + } + + // ɾ³ýÉÏÃæ´´½¨µÄ shell ¹ÜÀíÆ÷¡£ + if (pShellManager != NULL) + { + delete pShellManager; + } + + // ÓÉÓÚ¶Ô»°¿òÒѹرգ¬ËùÒÔ½«·µ»Ø FALSE ÒÔ±ãÍ˳öÓ¦ÓóÌÐò£¬ + // ¶ø²»ÊÇÆô¶¯Ó¦ÓóÌÐòµÄÏûÏ¢±Ã¡£ + return FALSE; +} + diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.h b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.h new file mode 100644 index 0000000..7b275e3 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.h @@ -0,0 +1,32 @@ + +// DpcTimer.h : PROJECT_NAME Ó¦ÓóÌÐòµÄÖ÷Í·Îļþ +// + +#pragma once + +#ifndef __AFXWIN_H__ + #error "ÔÚ°üº¬´ËÎļþ֮ǰ°üº¬¡°stdafx.h¡±ÒÔÉú³É PCH Îļþ" +#endif + +#include "resource.h" // Ö÷·ûºÅ + + +// CDpcTimerApp: +// ÓйشËÀàµÄʵÏÖ£¬Çë²ÎÔÄ DpcTimer.cpp +// + +class CDpcTimerApp : public CWinApp +{ +public: + CDpcTimerApp(); + +// ÖØд +public: + virtual BOOL InitInstance(); + +// ʵÏÖ + + DECLARE_MESSAGE_MAP() +}; + +extern CDpcTimerApp theApp; \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.rc b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.rc new file mode 100644 index 0000000000000000000000000000000000000000..f594363bb81e60b3ab9b5b69fa39197949dc5938 GIT binary patch literal 10270 zcmd^FO>Y}T7#{V4K<$+Sr^S&_BGS}$lD0sFNbDrFaBMg0qzy!bG>OwlsT0{w2?7BJ zBu;#tkoW`q4kW~d-@xBMTp&EpyneGY_N?QCs<=Wcd%UwV@Av1dPyfDQZkWg{n|-rw zTISHS@oAV2=GHLRHpgbm9N?~CUdI)gJ+o_?__Q$J!MKCD7Dnzn#;9b zfY~B`S4`QgVBp?M7cJCF|LPzTo!@LdAe z1@K9EEMPv5Pp?M$bwvKWKib5;yNCc27Hb)^70j+;T(Z8RGqR3Wzkt;XW)iStteXcm+0(m%F{XqVQ^Sf9 z=q+KFcuKuFMCfo_%m79j97cSJmg#Hy<6;JwdSmDyEFlP? z*qRO_O%v0X)`WNoDPvaKgujXRSK#^dGV!pw)$*VA!k<7*(Dg#5!Qj zA?7e|K3!UCfLDbq2)Ax)oZ+b+WKqv90;f@-5jKg+GdBL_2k13q$5QibU{?`!=QgCY zk9tX}5>^d)cyGo=8Oc^3{BV)F_vO#O|Mtr##jn3>rtuMu1qY~BBnOc)-&;wQ(xfp( zXnWz&ulIiW?2k%1uJhwXny0#znU8gtI#8oK=^V|A6p}I>BjlKE)XvSb8JCCTX=FZv z#jv`L(48FOj$I8qp%N@ALWRpt=-5W7BmCL|ROx@%o3J+J+75O`m~Y~q{Saf?7VMEb z*kiG4+PBn1_THsS>h{N2L;G%Hr_kNTJ)sjSac~cz9^hiH^>O#_W3(aYk4tpE_q2~O{%u8Fq`u(yUfw&u+i0Idcr?4GG}!jkm@fp${CE>haN zHe=fNzNwHlKgLRBl+gc%vhacx5O)Ee`<=$3j=yysI?fbAY3Ch+`a4{~S37ze-Xn#f_Eglwr|YRgB(h9(KaoEQuZ&(>(d{edV2J2;?+prZLW7oCJRAU0{pdErDD1 zc{Pj4uklGIy{?F-1*<#SC!?F|b?5ou3^*bMl))_Mc$Qwc3@fPM!|^@Pu2CcLyRe_G zVLiJ{cA<>i$@*TeOrG?6FzwfkHzIM)GLqGB-3JbKRaN{7`~0)_cF9Mqr&*<|^(Q0i zro_A0gOkTe%*Hk!mb*EVrc~EfE^CU**un!5J8DlnoTX*?%y=@Xai9a!l z-RgSm8y<%9qs3bv9__wz>f-2)k@Oly^St$+9L9^qqZkoLsvcImiOyU+JYAvxGxt$q z)RA=@+flV~;PqK&y`Gu)JF1{kV9$U?UNhZ2k@K!b2Nq z@H3BZ|2!($6FOPbr#h}dpL}aT8Du~=-!2@%Q=5pN6^!hi>92gs{LcLFChqQ-gL{9* z*XnPlU=PDr859B4eLE!npm@T0Mj`f&J_m}y_cVnpRT(R@DR@R$ZVKOrORcf@YGGt& z&?}o>ny0Y##L7;rQla{zkE4wBdlq_s^`;!SI?#G9(Z!YQ@749=cOJgDSJ<0axstsI zht+Pa$gYzdsw8>mTEWxcv<6&ougxcg6pY!uPI7o@RCR3Z5^a1FPGN?5@w*UdP3&d+1-azV%`FtaPQbTkhL2iyq2_@7tJSQwa_3 z+%7J!1Y7d!|97hCRv3H>wq+jLDua4)y@Pc&ZG~?>rAwimaaGtFsWo;;y>_iy?H$uj zgvQNlfH8r5%S-Z6qA%i4*V*uIl1Dq1kxTtZlp6G30P4v9*Traar&h-C-~MZ58W7I= z*UI3xdBeOZ6ssEyC;hG9FuTux12_znVcz!ncJ<%>kAnR=Pu7Gt){&uqcnx|p$EYH9 xblLZEX}H}taH02aZafnT^zEBKOy0Dq#JOrTuU?9kH{q*^%A2Rb!&FFw^bapD0;m80 literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj new file mode 100644 index 0000000..46c578b --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj @@ -0,0 +1,208 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {87B5C41B-A5BE-434E-A019-C698B70BDE5F} + DpcTimer + MFCProj + + + + Application + true + Unicode + Dynamic + + + Application + true + Unicode + Dynamic + + + Application + false + true + Unicode + Dynamic + + + Application + false + true + Unicode + Dynamic + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + + + Windows + true + + + false + true + _DEBUG;%(PreprocessorDefinitions) + + + 0x0804 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + + + Windows + true + + + false + _DEBUG;%(PreprocessorDefinitions) + + + 0x0804 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + + + Windows + true + true + true + + + false + true + NDEBUG;%(PreprocessorDefinitions) + + + 0x0804 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + + + Windows + true + true + true + + + false + NDEBUG;%(PreprocessorDefinitions) + + + 0x0804 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.filters b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.filters new file mode 100644 index 0000000..0899a3d --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.filters @@ -0,0 +1,59 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + 资æºæ–‡ä»¶ + + + 资æºæ–‡ä»¶ + + + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + + + æºæ–‡ä»¶ + + + æºæ–‡ä»¶ + + + æºæ–‡ä»¶ + + + + + 资æºæ–‡ä»¶ + + + \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.user b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimer.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.cpp b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.cpp new file mode 100644 index 0000000..2292ef5 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.cpp @@ -0,0 +1,558 @@ + +// DpcTimerDlg.cpp : ʵÏÖÎļþ +// + +#include "stdafx.h" +#include "DpcTimer.h" +#include "DpcTimerDlg.h" +#include "afxdialogex.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + + +#define CTL_GET_DPCTIMER \ + CTL_CODE(FILE_DEVICE_UNKNOWN,0x830,METHOD_NEITHER,FILE_ANY_ACCESS) +#define CTL_GET_DRIVER \ + CTL_CODE(FILE_DEVICE_UNKNOWN,0x831,METHOD_NEITHER,FILE_ANY_ACCESS) +#define CTL_REMOVEDPCTIMER \ + CTL_CODE(FILE_DEVICE_UNKNOWN,0x832,METHOD_NEITHER,FILE_ANY_ACCESS) + + +typedef struct _COLUMNSTRUCT +{ + WCHAR* szTitle; + UINT nWidth; +}COLUMNSTRUCT; + + +COLUMNSTRUCT g_Column_DPCTimer[] = +{ + { L"¶¨Ê±Æ÷¶ÔÏó", 150 }, + { L"DPC", 150 }, + { L"´¥·¢ÖÜÆÚ(s)", 80 }, + { L"º¯ÊýÈë¿Ú", 150 }, + { L"ËùÊôÄ£¿é", 420 } + +}; + +UINT g_Column_DCPTimer_Count = 5; //½ø³ÌÁбíÁÐÊý +HANDLE g_hDevice = NULL; + + + +// ÓÃÓÚÓ¦ÓóÌÐò¡°¹ØÓÚ¡±²Ëµ¥ÏîµÄ CAboutDlg ¶Ô»°¿ò + +class CAboutDlg : public CDialogEx +{ +public: + CAboutDlg(); + +// ¶Ô»°¿òÊý¾Ý + enum { IDD = IDD_ABOUTBOX }; + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Ö§³Ö + +// ʵÏÖ +protected: + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) +{ +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) +END_MESSAGE_MAP() + + +// CDpcTimerDlg ¶Ô»°¿ò + + + + +CDpcTimerDlg::CDpcTimerDlg(CWnd* pParent /*=NULL*/) + : CDialogEx(CDpcTimerDlg::IDD, pParent) + , m_strDPCTimer(_T("")) +{ + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +void CDpcTimerDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); + DDX_Control(pDX, IDC_LIST, m_List); + DDX_Text(pDX, IDC_STATIC_COUNT, m_strDPCTimer); +} + +BEGIN_MESSAGE_MAP(CDpcTimerDlg, CDialogEx) + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_BN_CLICKED(IDC_BUTTON, &CDpcTimerDlg::OnBnClickedButton) + ON_NOTIFY(NM_RCLICK, IDC_LIST, &CDpcTimerDlg::OnNMRClickList) + ON_COMMAND(ID_REMOVE,OnRemove) +END_MESSAGE_MAP() + + +// CDpcTimerDlg ÏûÏ¢´¦Àí³ÌÐò + +BOOL CDpcTimerDlg::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + // ½«¡°¹ØÓÚ...¡±²Ëµ¥ÏîÌí¼Óµ½ÏµÍ³²Ëµ¥ÖС£ + + // IDM_ABOUTBOX ±ØÐëÔÚϵͳÃüÁΧÄÚ¡£ + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + BOOL bNameValid; + CString strAboutMenu; + bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); + ASSERT(bNameValid); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // ÉèÖô˶Ի°¿òµÄͼ±ê¡£µ±Ó¦ÓóÌÐòÖ÷´°¿Ú²»ÊǶԻ°¿òʱ£¬¿ò¼Ü½«×Ô¶¯ + // Ö´Ðд˲Ù×÷ + SetIcon(m_hIcon, TRUE); // ÉèÖôóͼ±ê + SetIcon(m_hIcon, FALSE); // ÉèÖÃСͼ±ê + + // TODO: ÔÚ´ËÌí¼Ó¶îÍâµÄ³õʼ»¯´úÂë + + InitList(); + + return TRUE; // ³ý·Ç½«½¹µãÉèÖõ½¿Ø¼þ£¬·ñÔò·µ»Ø TRUE +} + + + +VOID CDpcTimerDlg::InitList() +{ + while(m_List.DeleteColumn(0)); + m_List.DeleteAllItems(); + + m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP); + + UINT i; + for (i = 0;i(dc.GetSafeHdc()), 0); + + // ʹͼ±êÔÚ¹¤×÷Çø¾ØÐÎÖоÓÖÐ + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // »æÖÆͼ±ê + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialogEx::OnPaint(); + } +} + +//µ±Óû§Í϶¯×îС»¯´°¿Úʱϵͳµ÷Óô˺¯ÊýÈ¡µÃ¹â±ê +//ÏÔʾ¡£ +HCURSOR CDpcTimerDlg::OnQueryDragIcon() +{ + return static_cast(m_hIcon); +} + + + +void CDpcTimerDlg::OnBnClickedButton() +{ + // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë + g_hDevice = OpenDevice(L"\\\\.\\DPCTimerLink"); + + if (g_hDevice==NULL) + { + ::MessageBox(NULL,L"É豸»ñȡʧ°Ü",NULL,0); + return; + } + EnumDriver(); + GetDPC(); + + + CloseHandle(g_hDevice); +} + + +HANDLE CDpcTimerDlg::OpenDevice(LPCTSTR lpDevicePath) +{ + HANDLE hDevice = CreateFile(lpDevicePath, + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (hDevice == INVALID_HANDLE_VALUE) + { + } + + return hDevice; + +} + + + +void CDpcTimerDlg::GetDPC() +{ + ULONG_PTR ulCnt = 100; + PDPC_TIMER_INFOR TimerInfor = NULL; + BOOL bRet = FALSE; + DWORD ulReturnSize = 0; + + m_List.DeleteAllItems(); + m_DPCVector.clear(); + + do + { + ULONG_PTR ulSize = sizeof(DPC_TIMER_INFOR) + ulCnt * sizeof(DPC_TIMER); + + if (TimerInfor) + { + free(TimerInfor); + TimerInfor = NULL; + } + + TimerInfor = (PDPC_TIMER_INFOR)malloc(ulSize); + + if (TimerInfor) + { + memset(TimerInfor, 0, ulSize); + TimerInfor->ulCnt = ulCnt; + bRet = DeviceIoControl(g_hDevice,CTL_GET_DPCTIMER, + NULL, + 0, + TimerInfor, + ulSize, + &ulReturnSize, + NULL); + } + + ulCnt =TimerInfor->ulCnt + 10; + + } while (!bRet && TimerInfor->ulRetCnt > TimerInfor->ulCnt); + + if (bRet && + TimerInfor->ulCnt >= TimerInfor->ulRetCnt) + { + for (ULONG i = 0; i < TimerInfor->ulRetCnt; i++) + { + m_DPCVector.push_back(TimerInfor->DpcTimer[i]); + } + } + + if (TimerInfor) + { + free(TimerInfor); + TimerInfor = NULL; + } + + InsertDPCItem(); +} + + + + +void CDpcTimerDlg::InsertDPCItem() +{ + m_ulDPCCount = 0; + int i = 0; + for (vector::iterator itor = m_DPCVector.begin(); itor != m_DPCVector.end(); itor++) + { + CString strTimerObject, strPeriod, strDispatch, strPath, strDpc; + + strTimerObject.Format(L"0x%08p", itor->TimerObject); + strPeriod.Format(L"%d", itor->Period / 1000); + strDispatch.Format(L"0x%08p", itor->TimeDispatch); + strPath = GetDriverPath(itor->TimeDispatch); + strDpc.Format(L"0x%08p", itor->Dpc); + + int n = m_List.InsertItem(m_List.GetItemCount(),strTimerObject); + m_List.SetItemText(n, 1, strDpc); + m_List.SetItemText(n, 2, strPeriod); + m_List.SetItemText(n, 3, strDispatch); + m_List.SetItemText(n, 4, strPath); + + i++; + m_ulDPCCount++; + } + + + m_strDPCTimer.Format(L"%d",m_ulDPCCount); + + UpdateData(FALSE); + +} + + + + +BOOL CDpcTimerDlg::EnumDriver() +{ + ULONG ulReturnSize = 0; + BOOL bRet = FALSE; + + + m_DriverList.clear(); + + ULONG ulCount = 1000; + PALL_DRIVERS Drivers = NULL; + + do + { + ULONG ulSize = 0; + if (Drivers) + { + free(Drivers); + Drivers = NULL; + } + ulSize = sizeof(ALL_DRIVERS) + ulCount * sizeof(DRIVER_INFO); + Drivers = (PALL_DRIVERS)malloc(ulSize); + if (!Drivers) + { + break; + } + memset(Drivers,0,ulSize); + bRet = DeviceIoControl(g_hDevice,CTL_GET_DRIVER, + NULL, + 0, + Drivers, + ulSize, + &ulReturnSize, + NULL); + + ulCount = Drivers->ulCount + 100; + } while (bRet == FALSE && GetLastError() == ERROR_INSUFFICIENT_BUFFER); + + if (bRet && Drivers->ulCount > 0) + { + for (ULONG i = 0;iulCount; i++) + { + FixDriverPath(&Drivers->Drivers[i]); + m_DriverList.push_back(Drivers->Drivers[i]); + } + } + + if (Drivers) + { + free(Drivers); + Drivers = NULL; + } + + return bRet; +} + + + + +CString CDpcTimerDlg::GetDriverPath(ULONG_PTR Address) +{ + CString strPath; + + for (vector::iterator itor = m_DriverList.begin(); + itor != m_DriverList.end(); + itor++) + { + ULONG_PTR ulBase = itor->Base; + ULONG_PTR ulEnd = itor->Base + itor->Size; + if (Address >= ulBase && Address <= ulEnd) + { + strPath = itor->wzDriverPath; + break; + } + } + return strPath; +} + + +void CDpcTimerDlg::FixDriverPath(PDRIVER_INFO DriverInfor) +{ + if (!DriverInfor || wcslen(DriverInfor->wzDriverPath) == 0) + { + return; + } + + WCHAR wzWindowsDirectory[MAX_PATH] = {0}; + WCHAR wzDriverDirectory[MAX_PATH] = {0}; + WCHAR wzDriver[] = L"\\system32\\drivers\\"; + + GetWindowsDirectory(wzWindowsDirectory, MAX_PATH - 1); + wcscpy(wzDriverDirectory, wzWindowsDirectory); + wcscat(wzDriverDirectory, wzDriver); + + WCHAR* wzOriginPath = DriverInfor->wzDriverPath; + WCHAR wzPath[MAX_PATH] = {0}; + WCHAR* wzTemp = wcschr(wzOriginPath, L'\\'); + + // ûÓÐĿ¼ÐÅÏ¢£¬Ö»ÓÐÒ»¸öÇý¶¯Ãû×ֵģ¬Ö±½ÓÆ´½ÓDriverĿ¼¡£ + if (!wzTemp) + { + wcscpy(wzPath, wzDriverDirectory); + wcscat(wzPath, wzOriginPath); + wcscpy(wzOriginPath, wzPath); + wzOriginPath[wcslen(wzPath)] = L'\0'; + } + else + { + WCHAR wzUnknow[] = L"\\??\\"; + WCHAR wzSystemRoot[] = L"\\SystemRoot"; + WCHAR wzWindows[] = L"\\Windows"; + WCHAR wzWinnt[] = L"\\Winnt"; + size_t nOrigin = wcslen(wzOriginPath); + + if ( nOrigin >= wcslen(wzUnknow) && !_wcsnicmp(wzOriginPath, wzUnknow, wcslen(wzUnknow)) ) + { + wcscpy(wzPath, wzOriginPath + wcslen(wzUnknow)); + wcscpy(wzOriginPath, wzPath); + wzOriginPath[wcslen(wzPath)] = L'\0'; + } + else if (nOrigin >= wcslen(wzSystemRoot) && !_wcsnicmp(wzOriginPath, wzSystemRoot, wcslen(wzSystemRoot))) + { + wcscpy(wzPath, wzWindowsDirectory); + wcscat(wzPath, wzOriginPath + wcslen(wzSystemRoot)); + wcscpy(wzOriginPath, wzPath); + wzOriginPath[wcslen(wzPath)] = L'\0'; + } + else if (nOrigin >= wcslen(wzWindows) && !_wcsnicmp(wzOriginPath, wzWindows, wcslen(wzWindows))) + { + wcscpy(wzPath, wzWindowsDirectory); + wcscat(wzPath, wzOriginPath + wcslen(wzWindows)); + wcscpy(wzOriginPath, wzPath); + wzOriginPath[wcslen(wzPath)] = L'\0'; + } + else if (nOrigin >= wcslen(wzWinnt) && !_wcsnicmp(wzOriginPath, wzWinnt, wcslen(wzWinnt))) + { + wcscpy(wzPath, wzWindowsDirectory); + wcscat(wzPath, wzOriginPath + wcslen(wzWinnt)); + wcscpy(wzOriginPath, wzPath); + wzOriginPath[wcslen(wzPath)] = L'\0'; + } + } + + // Èç¹ûÊǶÌÎļþÃû + if (wcschr(wzOriginPath, '~')) + { + WCHAR wzLongPath[MAX_PATH] = {0}; + DWORD nRet = GetLongPathName(wzOriginPath, wzLongPath, MAX_PATH); + if ( !(nRet >= MAX_PATH || nRet == 0) ) + { + wcscpy(wzOriginPath, wzLongPath); + wzOriginPath[wcslen(wzLongPath)] = L'\0'; + } + } +} + +void CDpcTimerDlg::OnNMRClickList(NMHDR *pNMHDR, LRESULT *pResult) +{ + LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); + // TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë + CMenu Menu; + Menu.CreatePopupMenu(); + Menu.AppendMenu(MF_STRING, ID_REMOVE,L"ÒƳý"); + CPoint Pt; + GetCursorPos(&Pt); //µÃµ½Êó±êλÖà + Menu.TrackPopupMenu(TPM_RIGHTBUTTON, Pt.x, Pt.y, this); + Menu.DestroyMenu(); //Ïú»Ù×ÊÔ´ + *pResult = 0; +} + + + + +void CDpcTimerDlg::OnRemove() +{ + + BOOL bRet = FALSE; + DWORD ulReturnSize = 0; + int Index = m_List.GetSelectionMark(); + if (Index<0) + { + return; + } + g_hDevice = OpenDevice(L"\\\\.\\DPCTimerLink"); + if (g_hDevice==NULL) + { + ::MessageBox(NULL,L"É豸»ñȡʧ°Ü",NULL,0); + return; + } + + CString Temp = m_List.GetItemText(Index,0); + REMOVE_DPCTIMER RemoveDPCTimer; + for ( vector ::iterator Iter = m_DPCVector.begin( ); Iter != m_DPCVector.end( ); Iter++ ) + { + CString strTimerObject; + strTimerObject.Format(L"0x%08p", Iter->TimerObject); + if (!strTimerObject.CompareNoCase(Temp)) + { + RemoveDPCTimer.TimerObject = Iter->TimerObject; + bRet = DeviceIoControl(g_hDevice,CTL_REMOVEDPCTIMER, + &RemoveDPCTimer, + sizeof(REMOVE_DPCTIMER), + NULL, + 0, + &ulReturnSize, + NULL); + break; + } + } + m_ulDPCCount--; + m_List.DeleteItem(Index); + m_strDPCTimer.Format(L"%d",m_ulDPCCount); + UpdateData(FALSE); + CloseHandle(g_hDevice); + + +} \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.h b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.h new file mode 100644 index 0000000..9adbc53 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/DpcTimerDlg.h @@ -0,0 +1,98 @@ + +// DpcTimerDlg.h : Í·Îļþ +// + +#pragma once +#include "afxcmn.h" +#include +#include +#include +using namespace std; + + + +typedef struct _DRIVER_INFO_ +{ + ULONG_PTR LodeOrder; + ULONG_PTR Base; + ULONG_PTR Size; + ULONG_PTR DriverObject; + ULONG_PTR DirverStartAddress; + WCHAR wzDriverPath[MAX_PATH]; + WCHAR wzKeyName[MAX_PATH]; +}DRIVER_INFO, *PDRIVER_INFO; + +typedef struct _ALL_DRIVERS_ +{ + ULONG_PTR ulCount; + DRIVER_INFO Drivers[1]; +}ALL_DRIVERS, *PALL_DRIVERS; + + +typedef struct _REMOVE_DPCTIMER +{ + ULONG_PTR TimerObject; +}REMOVE_DPCTIMER,*PREMOVE_DPCTIMER; + +typedef struct _DPC_TIMER_ +{ + ULONG_PTR TimerObject; + ULONG_PTR Period; // ÖÜÆÚ + ULONG_PTR TimeDispatch; + ULONG_PTR Dpc; +}DPC_TIMER, *PDPC_TIMER; + +typedef struct _DPC_TIMER_INFOR_ +{ + ULONG ulCnt; + ULONG ulRetCnt; + DPC_TIMER DpcTimer[1]; +}DPC_TIMER_INFOR, *PDPC_TIMER_INFOR; + +// CDpcTimerDlg ¶Ô»°¿ò +class CDpcTimerDlg : public CDialogEx +{ +// ¹¹Ôì +public: + CDpcTimerDlg(CWnd* pParent = NULL); // ±ê×¼¹¹Ô캯Êý + +// ¶Ô»°¿òÊý¾Ý + enum { IDD = IDD_DPCTIMER_DIALOG }; + + vector m_DriverList; + vector m_DPCVector; + ULONG m_ulDPCCount; + ~CDpcTimerDlg() + { + m_DPCVector.clear(); + m_DriverList.clear(); + } + HANDLE OpenDevice(LPCTSTR lpDevicePath); + void GetDPC(); + void InsertDPCItem(); + BOOL EnumDriver(); + CString GetDriverPath(ULONG_PTR Address); + void FixDriverPath(PDRIVER_INFO DriverInfor); + void OnRemove(); + VOID InitList(); + + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Ö§³Ö + + +// ʵÏÖ +protected: + HICON m_hIcon; + + // Éú³ÉµÄÏûÏ¢Ó³É亯Êý + virtual BOOL OnInitDialog(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + DECLARE_MESSAGE_MAP() +public: + CListCtrl m_List; + afx_msg void OnBnClickedButton(); + afx_msg void OnNMRClickList(NMHDR *pNMHDR, LRESULT *pResult); + CString m_strDPCTimer; +}; diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/ReadMe.txt b/DpcTimer_x64/DpcTimer/DpcTimer/ReadMe.txt new file mode 100644 index 0000000..2e54952 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/ReadMe.txt @@ -0,0 +1,77 @@ +================================================================================ +MICROSOFT »ù´¡Àà¿â: DpcTimer ÏîÄ¿¸ÅÊö +=============================================================================== + +Ó¦ÓóÌÐòÏòµ¼ÒÑΪÄú´´½¨ÁËÕâ¸ö DpcTimer Ó¦ÓóÌÐò¡£´ËÓ¦ÓóÌÐò²»½öÑÝʾ Microsoft »ù´¡ÀàµÄ»ù±¾Ê¹Ó÷½·¨£¬»¹¿É×÷ΪÄú±àдӦÓóÌÐòµÄÆðµã¡£ + +±¾Îļþ¸ÅÒª½éÉÜ×é³É DpcTimer Ó¦ÓóÌÐòµÄÿ¸öÎļþµÄÄÚÈÝ¡£ + +DpcTimer.vcxproj +ÕâÊÇʹÓÃÓ¦ÓóÌÐòÏòµ¼Éú³ÉµÄ VC++ ÏîÄ¿µÄÖ÷ÏîÄ¿Îļþ¡£ +Ëü°üº¬Éú³É¸ÃÎļþµÄ Visual C++ µÄ°æ±¾ÐÅÏ¢£¬ÒÔ¼°ÓйØʹÓÃÓ¦ÓóÌÐòÏòµ¼Ñ¡ÔñµÄƽ̨¡¢ÅäÖúÍÏîÄ¿¹¦ÄܵÄÐÅÏ¢¡£ + +DpcTimer.vcxproj.filters + ÕâÊÇʹÓá°Ó¦ÓóÌÐòÏòµ¼¡±Éú³ÉµÄ VC++ ÏîĿɸѡÆ÷Îļþ¡£ + Ëü°üº¬ÓйØÏîÄ¿ÎļþÓëɸѡÆ÷Ö®¼äµÄ¹ØÁªÐÅÏ¢¡£ÔÚ IDE ÖУ¬Í¨¹ýÕâÖÖ¹ØÁª£¬ÔÚÌض¨½ÚµãÏÂÒÔ·Ö×éÐÎʽÏÔʾ¾ßÓÐÏàËÆÀ©Õ¹ÃûµÄÎļþ¡£ÀýÈ磬¡°.cpp¡±ÎļþÓë¡°Ô´Îļþ¡±É¸Ñ¡Æ÷¹ØÁª¡£ + +DpcTimer.h +ÕâÊÇÓ¦ÓóÌÐòµÄÖ÷ҪͷÎļþ¡£Ëü°üÀ¨ÆäËûÏîÄ¿Ìض¨µÄÍ·Îļþ(°üÀ¨ Resource.h)£¬²¢ÉùÃ÷ CDpcTimerApp Ó¦ÓóÌÐòÀà¡£ + +DpcTimer.cpp +ÕâÊÇ°üº¬Ó¦ÓóÌÐòÀà CDpcTimerApp µÄÖ÷ÒªÓ¦ÓóÌÐòÔ´Îļþ¡£ + +DpcTimer.rc +ÕâÊdzÌÐòʹÓõÄËùÓÐ Microsoft Windows ×ÊÔ´µÄÁÐ±í¡£Ëü°üÀ¨ RES ×ÓĿ¼Öд洢µÄͼ±ê¡¢Î»Í¼ºÍ¹â±ê¡£´ËÎļþ¿ÉÒÔÖ±½ÓÔÚ Microsoft Visual C++ ÖнøÐб༭¡£ÏîÄ¿×ÊԴλÓÚ 2052 ÖС£ + +res\DpcTimer.ico +ÕâÊÇÓÃ×÷Ó¦ÓóÌÐòͼ±êµÄͼ±êÎļþ¡£´Ëͼ±ê°üÀ¨ÔÚÖ÷Òª×ÊÔ´Îļþ DpcTimer.rc ÖС£ + +res\DpcTimer.rc2 +´ËÎļþ°üº¬²»ÔÚ Microsoft Visual C++ ÖнøÐб༭µÄ×ÊÔ´¡£ÄúÓ¦¸Ã½«²»¿ÉÓÉ×ÊÔ´±à¼­Æ÷±à¼­µÄËùÓÐ×ÊÔ´·ÅÔÚ´ËÎļþÖС£ + + +///////////////////////////////////////////////////////////////////////////// + +Ó¦ÓóÌÐòÏòµ¼´´½¨Ò»¸ö¶Ô»°¿òÀà: + +DpcTimerDlg.h£¬DpcTimerDlg.cpp - ¶Ô»°¿ò +ÕâЩÎļþ°üº¬ CDpcTimerDlg Àà¡£¸ÃÀඨÒåÓ¦ÓóÌÐòÖ÷¶Ô»°¿òµÄÐÐΪ¡£¸Ã¶Ô»°¿òµÄÄ£°åλÓÚ DpcTimer.rc ÖУ¬¸ÃÎļþ¿ÉÒÔÔÚ Microsoft Visual C++ ÖнøÐб༭¡£ + + +///////////////////////////////////////////////////////////////////////////// + +ÆäËû¹¦ÄÜ: + +ActiveX ¿Ø¼þ +Ó¦ÓóÌÐò°üÀ¨¶ÔʹÓà ActiveX ¿Ø¼þµÄÖ§³Ö¡£ + +´òÓ¡¼°´òÓ¡Ô¤ÀÀÖ§³Ö +Ó¦ÓóÌÐòÏòµ¼ÒÑͨ¹ý´Ó MFC ¿âµ÷Óà CView ÀàÖеijÉÔ±º¯Êý£¬Éú³ÉÁËÓÃÓÚ´¦Àí´òÓ¡¡¢´òÓ¡ÉèÖúʹòÓ¡Ô¤ÀÀÃüÁîµÄ´úÂë¡£ + +///////////////////////////////////////////////////////////////////////////// + +ÆäËû±ê×¼Îļþ: + +StdAfx.h£¬StdAfx.cpp +ÕâЩÎļþÓÃÓÚÉú³ÉÃûΪ DpcTimer.pch µÄÔ¤±àÒëÍ· (PCH) ÎļþºÍÃûΪ StdAfx.obj µÄÔ¤±àÒëÀàÐÍÎļþ¡£ + +Resource.h +ÕâÊDZê׼ͷÎļþ£¬Ëü¶¨ÒåеÄ×ÊÔ´ ID¡£ +Microsoft Visual C++ ¶ÁÈ¡²¢¸üдËÎļþ¡£ + +DpcTimer.manifest + Ó¦ÓóÌÐòÇåµ¥Îļþ¹© Windows XP ÓÃÀ´ÃèÊöÓ¦ÓóÌÐò + ¶ÔÌض¨°æ±¾²¢ÐгÌÐò¼¯µÄÒÀÀµÐÔ¡£¼ÓÔسÌÐòʹÓÃ´Ë + ÐÅÏ¢´Ó³ÌÐò¼¯»º´æ¼ÓÔØÊʵ±µÄ³ÌÐò¼¯»ò + ´ÓÓ¦ÓóÌÐò¼ÓÔØ˽ÓÐÐÅÏ¢¡£Ó¦ÓóÌÐòÇåµ¥¿ÉÄÜΪÁËÖØзַ¢¶ø×÷Ϊ + ÓëÓ¦ÓóÌÐò¿ÉÖ´ÐÐÎļþ°²×°ÔÚÏàͬÎļþ¼ÐÖеÄÍⲿ .manifest Îļþ°üÀ¨£¬ + Ò²¿ÉÄÜÒÔ×ÊÔ´µÄÐÎʽ°üÀ¨ÔڸÿÉÖ´ÐÐÎļþÖС£ +///////////////////////////////////////////////////////////////////////////// + +ÆäËû×¢ÊÍ: + +Ó¦ÓóÌÐòÏòµ¼Ê¹Óá°TODO:¡±Ö¸Ê¾Ó¦Ìí¼Ó»ò×Ô¶¨ÒåµÄÔ´´úÂ벿·Ö¡£ + +Èç¹ûÓ¦ÓóÌÐòÔÚ¹²ÏíµÄ DLL ÖÐʹÓà MFC£¬ÔòÐèÒªÖØз¢²¼ÕâЩ MFC DLL£»Èç¹ûÓ¦ÓóÌÐòËùÓõÄÓïÑÔÓë²Ù×÷ϵͳµÄµ±Ç°ÇøÓòÉèÖò»Í¬£¬Ôò»¹ÐèÒªÖØз¢²¼¶ÔÓ¦µÄ±¾µØ»¯×ÊÔ´ MFC100XXX.DLL¡£ÓйØÕâÁ½¸öÖ÷ÌâµÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼û MSDN ÎĵµÖÐÓÐ¹Ø Redistributing Visual C++ applications (ÖØз¢²¼ Visual C++ Ó¦ÓóÌÐò)µÄÕ½ڡ£ + +///////////////////////////////////////////////////////////////////////////// diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/res/DpcTimer.ico b/DpcTimer_x64/DpcTimer/DpcTimer/res/DpcTimer.ico new file mode 100644 index 0000000000000000000000000000000000000000..d56fbcdfdf6eac0f4727c34770c26689271d96af GIT binary patch literal 67777 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 NK9A-8OQnhX{{?OVn?wKr literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/res/DpcTimer.rc2 b/DpcTimer_x64/DpcTimer/DpcTimer/res/DpcTimer.rc2 new file mode 100644 index 0000000000000000000000000000000000000000..68dbeb40dae00f220778c9c50eacc4f2e8312879 GIT binary patch literal 672 zcmezWPoF`bftP^`Na`~vFt{)jFeEdCFk~|1GNdvTG3YS_F*q|A0cCW7*cT|C3>3|0 zCaLom?ZP@oGu8T=XIfutYMY<~uC23MdMLMNk@4#Gh44*+q!2zPmrqP*G4* zf{+!B?RehUZ|wQ^x1)}pkW2?E6)VvpU*@z-ky5N&&&aC25!+FqzQ!7=)}1DNmG1E! zYwHPr+R29gXani;HQ~o!z&G4x23DT_+r)?UP~ra=W(UcF7*ADkR$OqNh{G;3;+5^!C7CG>bOnc6Q00gc%>8 z8BWfg0xd!>;mJC@K!5EHuUYqPw??)*>?0wk*$dE&8)y^cEo5dzQ7m;TOED)eA>&?f-@`$rk_s literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/stdafx.cpp b/DpcTimer_x64/DpcTimer/DpcTimer/stdafx.cpp new file mode 100644 index 0000000..cb90390 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/stdafx.cpp @@ -0,0 +1,8 @@ + +// stdafx.cpp : Ö»°üÀ¨±ê×¼°üº¬ÎļþµÄÔ´Îļþ +// DpcTimer.pch ½«×÷ΪԤ±àÒëÍ· +// stdafx.obj ½«°üº¬Ô¤±àÒëÀàÐÍÐÅÏ¢ + +#include "stdafx.h" + + diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/stdafx.h b/DpcTimer_x64/DpcTimer/DpcTimer/stdafx.h new file mode 100644 index 0000000..fac7631 --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/stdafx.h @@ -0,0 +1,58 @@ + +// stdafx.h : ±ê׼ϵͳ°üº¬ÎļþµÄ°üº¬Îļþ£¬ +// »òÊǾ­³£Ê¹Óõ«²»³£¸ü¸ÄµÄ +// Ìض¨ÓÚÏîÄ¿µÄ°üº¬Îļþ + +#pragma once + +#ifndef _SECURE_ATL +#define _SECURE_ATL 1 +#endif + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // ´Ó Windows Í·ÖÐÅųý¼«ÉÙʹÓõÄ×ÊÁÏ +#endif + +#include "targetver.h" + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // ijЩ CString ¹¹Ô캯Êý½«ÊÇÏÔʽµÄ + +// ¹Ø±Õ MFC ¶ÔijЩ³£¼ûµ«¾­³£¿É·ÅÐĺöÂԵľ¯¸æÏûÏ¢µÄÒþ²Ø +#define _AFX_ALL_WARNINGS + +#include // MFC ºËÐÄ×é¼þºÍ±ê×¼×é¼þ +#include // MFC À©Õ¹ + + +#include // MFC ×Ô¶¯»¯Àà + + + +#ifndef _AFX_NO_OLE_SUPPORT +#include // MFC ¶Ô Internet Explorer 4 ¹«¹²¿Ø¼þµÄÖ§³Ö +#endif +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC ¶Ô Windows ¹«¹²¿Ø¼þµÄÖ§³Ö +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include // ¹¦ÄÜÇøºÍ¿Ø¼þÌõµÄ MFC Ö§³Ö + + + + + + + + + +#ifdef _UNICODE +#if defined _M_IX86 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_X64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#else +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") +#endif +#endif + + diff --git a/DpcTimer_x64/DpcTimer/DpcTimer/targetver.h b/DpcTimer_x64/DpcTimer/DpcTimer/targetver.h new file mode 100644 index 0000000..0afac5b --- /dev/null +++ b/DpcTimer_x64/DpcTimer/DpcTimer/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// °üÀ¨ SDKDDKVer.h ½«¶¨Òå×î¸ß°æ±¾µÄ¿ÉÓà Windows ƽ̨¡£ + +// Èç¹ûҪΪÒÔÇ°µÄ Windows ƽ̨Éú³ÉÓ¦ÓóÌÐò£¬Çë°üÀ¨ WinSDKVer.h£¬²¢½« +// WIN32_WINNT ºêÉèÖÃΪҪ֧³ÖµÄƽ̨£¬È»ºóÔÙ°üÀ¨ SDKDDKVer.h¡£ + +#include diff --git a/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.c b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.c new file mode 100644 index 0000000..c1201e1 --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.c @@ -0,0 +1,444 @@ +/*************************************************************************************** +* AUTHOR : ÀÁÈË +* DATE : 2014-10-25 +* MODULE : DpcTimerDrv.C +* +* Command: +* Source of IOCTRL Sample Driver +* +* Description: +* Demonstrates communications between USER and KERNEL. +* +**************************************************************************************** +* Copyright (C) 2010 ÀÁÈË. +****************************************************************************************/ + +//####################################################################################### +//# I N C L U D E S +//####################################################################################### + + +#include "DpcTimerDrv.h" + +PDRIVER_OBJECT g_DriverObject = NULL; +PVOID Ntoskrnl_KLDR_DATA_TABLE_ENTRY = NULL; + +////////////////////////////////////////////////////////////////////////// + +//####################################################################################### +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//@@@@@@@@ D R I V E R E N T R Y P O I N T @@@@@@@@ +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//####################################################################################### +NTSTATUS +DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryString) +{ + NTSTATUS Status; + UNICODE_STRING uniDeviceName; + UNICODE_STRING uniLinkName; + ULONG_PTR i = 0; + PDEVICE_OBJECT DeviceObject = NULL; + RtlInitUnicodeString(&uniDeviceName,DEVICE_NAME); + RtlInitUnicodeString(&uniLinkName,LINK_NAME); + for (i=0;iMajorFunction[i] = DefaultDispatchFunction; + } + DriverObject->DriverUnload = UnloadDriver; + DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchControl; + //´´½¨É豸¶ÔÏó + Status = IoCreateDevice(DriverObject,0,&uniDeviceName,FILE_DEVICE_UNKNOWN,0,FALSE,&DeviceObject); + if (!NT_SUCCESS(Status)) + { + return STATUS_UNSUCCESSFUL; + } + Status = IoCreateSymbolicLink(&uniLinkName,&uniDeviceName); + if (!NT_SUCCESS(Status)) + { + IoDeleteDevice(DeviceObject); + return STATUS_UNSUCCESSFUL; + } + + g_DriverObject = DriverObject; + + return STATUS_SUCCESS; + +} + + +NTSTATUS DefaultDispatchFunction(PDEVICE_OBJECT DeviceObject,PIRP Irp) +{ + Irp->IoStatus.Information = 0; + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp,IO_NO_INCREMENT); + return STATUS_SUCCESS; +} + + +NTSTATUS DispatchControl(PDEVICE_OBJECT DeviceObject,PIRP Irp) +{ + NTSTATUS Status = STATUS_SUCCESS; + PIO_STACK_LOCATION IrpSp; + PVOID InputBuffer = NULL; + PVOID OutputBuffer = NULL; + ULONG_PTR InputSize = 0; + ULONG_PTR OutputSize = 0; + ULONG_PTR IoControlCode = 0; + + IrpSp = IoGetCurrentIrpStackLocation(Irp); + InputBuffer = IrpSp->Parameters.DeviceIoControl.Type3InputBuffer; + OutputBuffer = Irp->UserBuffer; + InputSize = IrpSp->Parameters.DeviceIoControl.InputBufferLength; + OutputSize = IrpSp->Parameters.DeviceIoControl.OutputBufferLength; + IoControlCode = IrpSp->Parameters.DeviceIoControl.IoControlCode; + switch(IoControlCode) + { + + case CTL_GET_DPCTIMER: + { + EnumDpcTimer(OutputBuffer); + Irp->IoStatus.Information = 0; + Status = Irp->IoStatus.Status = Status; + break; + } + + case CTL_REMOVEDPCTIMER: + { + + Status = RemoveDPCTimer(InputBuffer); + Irp->IoStatus.Information = 0; + Status = Irp->IoStatus.Status = Status; + break; + } + + case CTL_GET_DRIVER: + { + GetKernelLdrDataTableEntry(g_DriverObject); + Status = EnumDrivers(OutputBuffer,OutputSize); + Irp->IoStatus.Information = 0; + Status = Irp->IoStatus.Status = Status; + break; + } + default: + { + + Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; + Irp->IoStatus.Information = 0; + break; + } + } + + IoCompleteRequest(Irp,IO_NO_INCREMENT); + return Status; +} + + + +NTSTATUS EnumDpcTimer(PVOID OutBuffer) +{ + NTSTATUS Status = STATUS_UNSUCCESSFUL; + PDPC_TIMER_INFOR DpcTimerInfor = (PDPC_TIMER_INFOR)OutBuffer; + GetDpcTimerInformation_x64(DpcTimerInfor); + if (DpcTimerInfor->ulCnt >= DpcTimerInfor->ulRetCnt) + { + Status = STATUS_SUCCESS; + } + + return Status; +} + + +KDPC* TransTimerDpcEx( + IN PKTIMER InTimer, + IN ULONGLONG InKiWaitNever, + IN ULONGLONG InKiWaitAlways) +{ + ULONGLONG RDX = (ULONGLONG)InTimer->Dpc; + RDX ^= InKiWaitNever; + RDX = _rotl64(RDX, (UCHAR)(InKiWaitNever & 0xFF)); + RDX ^= (ULONGLONG)InTimer; + RDX = _byteswap_uint64(RDX); + RDX ^= InKiWaitAlways; + return (KDPC*)RDX; +} + + +NTSTATUS GetDpcTimerInformation_x64(PDPC_TIMER_INFOR DpcTimerInfor) +{ + ULONG CPUNumber = KeNumberProcessors; //ϵͳ±äÁ¿ + PUCHAR CurrentKPRCBAddress = NULL; + PUCHAR CurrentTimerTableEntry = NULL; + PLIST_ENTRY CurrentEntry = NULL; + PLIST_ENTRY NextEntry = NULL; + PULONG64 KiWaitAlways = NULL; + PULONG64 KiWaitNever = NULL; + int i = 0; + int j = 0; + int n = 0; + PKTIMER Timer; + typedef struct _KTIMER_TABLE_ENTRY + { + ULONG64 Lock; + LIST_ENTRY Entry; + ULARGE_INTEGER Time; + } KTIMER_TABLE_ENTRY, *PKTIMER_TABLE_ENTRY; + + for(j=0; jBlink; + if( MmIsAddressValid(CurrentEntry) && MmIsAddressValid(CurrentEntry) ) + { + while( NextEntry != CurrentEntry ) + { + PKDPC RealDpc; + //»ñµÃÊ×µØÖ· + Timer = CONTAINING_RECORD(NextEntry,KTIMER,TimerListEntry); + RealDpc=TransTimerDpcEx(Timer,*KiWaitNever,*KiWaitAlways); + if( MmIsAddressValid(Timer)&&MmIsAddressValid(RealDpc)&&MmIsAddressValid(RealDpc->DeferredRoutine)) + { + if (DpcTimerInfor->ulCnt > DpcTimerInfor->ulRetCnt) + { + DpcTimerInfor->DpcTimer[n].Dpc = (ULONG64)RealDpc; + DpcTimerInfor->DpcTimer[n].Period = Timer->Period; + DpcTimerInfor->DpcTimer[n].TimeDispatch = (ULONG64)RealDpc->DeferredRoutine; + DpcTimerInfor->DpcTimer[n].TimerObject = (ULONG64)Timer; + n++; + } + DpcTimerInfor->ulRetCnt++; + } + NextEntry = NextEntry->Blink; + } + } + } + } +} + + + +VOID FindKiWaitFunc(PULONG64 *KiWaitNeverAddr, PULONG64 *KiWaitAlwaysAddr) +{ + long Temp; + PUCHAR StartAddress,i; + UNICODE_STRING uniFuncName; + WCHAR wzFunName[] = L"KeSetTimer"; + RtlInitUnicodeString(&uniFuncName,wzFunName); + StartAddress = (PUCHAR)MmGetSystemRoutineAddress(&uniFuncName); + for(i=StartAddress; iDriverSection; + + while((PKLDR_DATA_TABLE_ENTRY)Entry->InLoadOrderLinks.Flink != FirstEntry) + { + + if (Entry->BaseDllName.Buffer && + nLen == Entry->BaseDllName.Length && + MmIsAddressValid((PVOID)Entry->BaseDllName.Buffer) && + !_wcsnicmp(wzNtoskrnl,(WCHAR*)Entry->BaseDllName.Buffer, nLen / sizeof(WCHAR))) + { + Ntoskrnl_KLDR_DATA_TABLE_ENTRY = (PVOID)Entry; + bRet = TRUE; + break; + } + + Entry = (PKLDR_DATA_TABLE_ENTRY)Entry->InLoadOrderLinks.Flink; + } + + // Èç¹ûûÕÒµ½ntoskrnl,ÄÇôʹÓÃ×Ô¼º + if (!bRet) + { + Ntoskrnl_KLDR_DATA_TABLE_ENTRY = (PVOID)FirstEntry; + bRet = TRUE; + } + } + + return bRet; +} + + + + +NTSTATUS EnumDrivers(PVOID OutBuffer, ULONG OutSize) +{ + NTSTATUS Status = STATUS_UNSUCCESSFUL; + PALL_DRIVERS DriversInfor = (PALL_DRIVERS)OutBuffer; + ULONG ulCount = (OutSize - sizeof(ALL_DRIVERS)) / sizeof(DRIVER_INFO); + if (!OutBuffer) + { + return STATUS_INVALID_PARAMETER; + } + + EnumDriverByLdrDataTableEntry(DriversInfor,ulCount); + if (ulCount >= DriversInfor->ulCount) + { + Status = STATUS_SUCCESS; + } + else + { + Status = STATUS_BUFFER_TOO_SMALL; + } + + return Status; +} + + + + +VOID EnumDriverByLdrDataTableEntry(PALL_DRIVERS DriversInfor, ULONG_PTR ulCount) +{ + PKLDR_DATA_TABLE_ENTRY Entry = NULL, FirstEntry = NULL; + ULONG nMax = PAGE_SIZE; + ULONG i = 0; + KIRQL OldIrql; + + FirstEntry = Entry = (PKLDR_DATA_TABLE_ENTRY)Ntoskrnl_KLDR_DATA_TABLE_ENTRY; + + if (!FirstEntry || !DriversInfor) + { + return; + } + OldIrql = KeRaiseIrqlToDpcLevel(); + __try + { + do + { + if ((ULONG_PTR)Entry->DllBase > SYSTEM_ADDRESS_START && Entry->SizeOfImage > 0) + { + ULONG_PTR Temp = DriversInfor->ulCount; + if (ulCount > Temp) + { + + DriversInfor->Drivers[Temp].LodeOrder = ++i; + DriversInfor->Drivers[Temp].Base = (ULONG_PTR)Entry->DllBase; + DriversInfor->Drivers[Temp].Size = Entry->SizeOfImage; + + if (IsUnicodeStringValid(&(Entry->FullDllName))) + { + wcsncpy(DriversInfor->Drivers[Temp].wzDriverPath, Entry->FullDllName.Buffer, Entry->FullDllName.Length); + } + else if (IsUnicodeStringValid(&(Entry->BaseDllName))) + { + wcsncpy(DriversInfor->Drivers[Temp].wzDriverPath, Entry->BaseDllName.Buffer, Entry->BaseDllName.Length); + } + } + DriversInfor->ulCount++; + } + + Entry = (PKLDR_DATA_TABLE_ENTRY)Entry->InLoadOrderLinks.Flink; + + }while(Entry && Entry != FirstEntry && nMax--); + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + DbgPrint("LdrDataTable Exception!\r\n"); + } + + KeLowerIrql(OldIrql); +} + +BOOLEAN IsUnicodeStringValid(PUNICODE_STRING uniString) +{ + BOOLEAN bRet = FALSE; + + __try + { + if (uniString->Length > 0 && + uniString->Buffer && + MmIsAddressValid(uniString->Buffer) && + MmIsAddressValid(&uniString->Buffer[uniString->Length / sizeof(WCHAR) - 1])) + { + bRet = TRUE; + } + + } + __except(EXCEPTION_EXECUTE_HANDLER) + { + bRet = FALSE; + } + + return bRet; +} + + + +PVOID GetFunctionAddressByName(WCHAR *wzFunction) +{ + UNICODE_STRING uniFunction; + PVOID AddrBase = NULL; + + if (wzFunction && wcslen(wzFunction) > 0) + { + RtlInitUnicodeString(&uniFunction, wzFunction); //³£Á¿Ö¸Õë + AddrBase = MmGetSystemRoutineAddress(&uniFunction); //ÔÚSystem ½ø³Ì µÚÒ»¸öÄ£¿é Ntosknrl.exe ExportTable + } + + return AddrBase; +} + + + +NTSTATUS RemoveDPCTimer(PVOID InBuffer) +{ + PREMOVE_DPCTIMER Temp = (PREMOVE_DPCTIMER)InBuffer; + ULONG_PTR TimerObject = Temp->TimerObject; + if (TimerObject&&MmIsAddressValid((PVOID)TimerObject)) + { + + if (KeCancelTimer((PKTIMER)TimerObject)) + { + return STATUS_SUCCESS; + } + } + return STATUS_UNSUCCESSFUL; +} + + + +VOID UnloadDriver(PDRIVER_OBJECT DriverObject) +{ + UNICODE_STRING uniLinkName; + PDEVICE_OBJECT CurrentDeviceObject; + PDEVICE_OBJECT NextDeviceObject; + + RtlInitUnicodeString(&uniLinkName,LINK_NAME); + IoDeleteSymbolicLink(&uniLinkName); + if (DriverObject->DeviceObject!=NULL) + { + CurrentDeviceObject = DriverObject->DeviceObject; + while(CurrentDeviceObject!=NULL) + { + NextDeviceObject = CurrentDeviceObject->NextDevice; + IoDeleteDevice(CurrentDeviceObject); + CurrentDeviceObject = NextDeviceObject; + } + } + DbgPrint("UnloadDriver\r\n"); +} \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.h b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.h new file mode 100644 index 0000000..d3dc72e --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.h @@ -0,0 +1,139 @@ +/*************************************************************************************** +* AUTHOR : ÀÁÈË +* DATE : 2014-10-25 +* MODULE : DpcTimerDrv.H +* +* IOCTRL Sample Driver +* +* Description: +* Demonstrates communications between USER and KERNEL. +* +**************************************************************************************** +* Copyright (C) 2010 ÀÁÈË. +****************************************************************************************/ + + +#include +#include + +#define CTL_GET_DPCTIMER \ + CTL_CODE(FILE_DEVICE_UNKNOWN,0x830,METHOD_NEITHER,FILE_ANY_ACCESS) +#define CTL_GET_DRIVER \ + CTL_CODE(FILE_DEVICE_UNKNOWN,0x831,METHOD_NEITHER,FILE_ANY_ACCESS) + +#define CTL_REMOVEDPCTIMER \ + CTL_CODE(FILE_DEVICE_UNKNOWN,0x832,METHOD_NEITHER,FILE_ANY_ACCESS) + +#define DEVICE_NAME L"\\Device\\DPCTimer" +#define LINK_NAME L"\\DosDevices\\DPCTimerLink" + +#define MAX_PATH 260 + +#define SYSTEM_ADDRESS_START32 0x80000000 +#define SYSTEM_ADDRESS_START64 0x80000000000 + +typedef struct _REMOVE_DPCTIMER +{ + ULONG_PTR TimerObject; +}REMOVE_DPCTIMER,*PREMOVE_DPCTIMER; + +typedef struct _DRIVER_INFO_ +{ + ULONG_PTR LodeOrder; + ULONG_PTR Base; + ULONG_PTR Size; + ULONG_PTR DriverObject; + ULONG_PTR DirverStartAddress; + WCHAR wzDriverPath[MAX_PATH]; + WCHAR wzKeyName[MAX_PATH]; +}DRIVER_INFO, *PDRIVER_INFO; + +typedef struct _ALL_DRIVERS_ +{ + ULONG_PTR ulCount; + DRIVER_INFO Drivers[1]; +}ALL_DRIVERS, *PALL_DRIVERS; + + +typedef struct _DPC_TIMER_ +{ + ULONG_PTR TimerObject; + ULONG_PTR Period; // ÖÜÆÚ + ULONG_PTR TimeDispatch; + ULONG_PTR Dpc; +}DPC_TIMER, *PDPC_TIMER; + + +typedef struct _DPC_TIMER_INFOR_ +{ + ULONG ulCnt; + ULONG ulRetCnt; + DPC_TIMER DpcTimer[1]; +}DPC_TIMER_INFOR, *PDPC_TIMER_INFOR; + + +typedef struct _KLDR_DATA_TABLE_ENTRY64 { + LIST_ENTRY64 InLoadOrderLinks; + ULONG64 __Undefined1; + ULONG64 __Undefined2; + ULONG64 __Undefined3; + ULONG64 NonPagedDebugInfo; + ULONG64 DllBase; + ULONG64 EntryPoint; + ULONG SizeOfImage; + UNICODE_STRING64 FullDllName; + UNICODE_STRING64 BaseDllName; + ULONG Flags; + USHORT LoadCount; + USHORT __Undefined5; + ULONG64 __Undefined6; + ULONG CheckSum; + ULONG __padding1; + ULONG TimeDateStamp; + ULONG __padding2; +} KLDR_DATA_TABLE_ENTRY64, *PKLDR_DATA_TABLE_ENTRY64; + +typedef struct _KLDR_DATA_TABLE_ENTRY32 { + LIST_ENTRY32 InLoadOrderLinks; + ULONG __Undefined1; + ULONG __Undefined2; + ULONG __Undefined3; + ULONG NonPagedDebugInfo; + ULONG DllBase; + ULONG EntryPoint; + ULONG SizeOfImage; + UNICODE_STRING32 FullDllName; + UNICODE_STRING32 BaseDllName; + ULONG Flags; + USHORT LoadCount; + USHORT __Undefined5; + ULONG __Undefined6; + ULONG CheckSum; + ULONG TimeDateStamp; +} KLDR_DATA_TABLE_ENTRY32, *PKLDR_DATA_TABLE_ENTRY32; + +#ifdef _WIN64 +#define PKLDR_DATA_TABLE_ENTRY PKLDR_DATA_TABLE_ENTRY64 +#define SYSTEM_ADDRESS_START SYSTEM_ADDRESS_START64 +#else +#define PKLDR_DATA_TABLE_ENTRY PKLDR_DATA_TABLE_ENTRY32 +#define SYSTEM_ADDRESS_START SYSTEM_ADDRESS_START32 +#endif + +VOID UnloadDriver(PDRIVER_OBJECT DriverObject); +PVOID GetFunctionAddressByName(WCHAR *wzFunction); +NTSTATUS DefaultDispatchFunction(PDEVICE_OBJECT DeviceObject,PIRP Irp); +NTSTATUS EnumDpcTimer(PVOID OutBuffer); +NTSTATUS DispatchControl(PDEVICE_OBJECT DeviceObject,PIRP Irp); +NTSTATUS GetDpcTimerInformation_x64(PDPC_TIMER_INFOR DpcTimerInfor); +VOID FindKiWaitFunc(PULONG64 *KiWaitNeverAddr, PULONG64 *KiWaitAlwaysAddr); +KDPC* TransTimerDpcEx( + IN PKTIMER InTimer, + IN ULONGLONG InKiWaitNever, + IN ULONGLONG InKiWaitAlways); + +VOID EnumDriverByLdrDataTableEntry(PALL_DRIVERS DriversInfor, ULONG_PTR ulCount); +NTSTATUS EnumDrivers(PVOID OutBuffer, ULONG OutSize); +BOOLEAN GetKernelLdrDataTableEntry(PDRIVER_OBJECT DriverObject); +BOOLEAN IsUnicodeStringValid(PUNICODE_STRING uniString); +NTSTATUS RemoveDPCTimer(PVOID InBuffer); \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.sln b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.sln new file mode 100644 index 0000000..c26c241 --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.sln @@ -0,0 +1,16 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DpcTimerDrv", "DpcTimerDrv.vcxproj", "{4EE67C57-BE79-4CD7-B3B0-94AECE62DB41}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + WinDDK|Win32 = WinDDK|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4EE67C57-BE79-4CD7-B3B0-94AECE62DB41}.WinDDK|Win32.ActiveCfg = WinDDK|Win32 + {4EE67C57-BE79-4CD7-B3B0-94AECE62DB41}.WinDDK|Win32.Build.0 = WinDDK|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.suo b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.suo new file mode 100644 index 0000000000000000000000000000000000000000..fdee46da237b24b2a2f53724d42d49a0964e4d26 GIT binary patch literal 10240 zcmeHNU2GiH6}}D-@=G9u5CVj4ejrWk>8{snXB|x9{Ym-RV7GQ`R9Q&7<5_2t^^P?= z>)47d5qLm6B;o;yCmyOMRpB9!mhgf=ZQ7Tr5{6a_DWC>r8~ zcmmY($fd=U{UYFVE4+|b>H)h+9cJ4;QO2wbLI-`~m>57g3)Cbp?R5s+EmpPA4rnjr zqfT@Anm$u=8V-V1Nt_fJP%nY%F+4TM#H}yY8IbhvN1Ls{p!6w!@=KuI(vQ0~%+%`x zy!Fh}{^{JF5qt99w7TX zf^;wNhroTn{lHdW8<6jRgf#5rxkgc7hg0r!(gRM~jr1V!QK!uQ#KTTG;iRbg-oXnG zeY!apKmWwLKP&$Jmw%c46-3bx96lnt#fV6W386x1bulj0_xhR?lzI{^spKY%PDQGS z<0AH_J5LL>`0H2pTv#*qpZh+e0{B;<21j2exl4V6Kw~DqObHukP0tRMQd+J&)^BPh zt!QN}-6-~F)sxvVtu-{HnI)8aB4I`TT0_Zl!77_tPf;sdX1358>M!RCy84thJ!qWN ziaoh-G#|@%V_g&7}Ly!%%EWu zhV|m8ajK-GvQ~CbpBTb|49Y#AAaY2j;Q#1hcB5AMme_}B~j)HwR%p!6BfJq9F{lzzQf z%;pLjl%b@gr!1{l(sO!2x2BbTYHA5Js?U% zcEc)9(3f;cn^2`$MKxm&x57{VC}ckls*J;j9a$LSRMk~z#r)~d7>fm^&scHLVPHi1 zy8>wDr3RLy%tsc=E3c8&IATm*_(p8R&k;3L1uwK~O>*Q2v&qC!#fsj`sjC>MPQkB# zOYc8kO{^TS1Nz5UpXY+0`p5m!wSW2>?)WBTN{_kdY2A~d23cG1mh?q-Y~bAyyO(W$ z2F5Q#-x+mS6*kuonv6+mdBU*cf9O+!&Y!W;As)g2DbT1!-#rVaq>X0n4!)-X`t+wf zlLe*k^*=4X@ft0z6LHLBl{nXu>JH;~x+9(L>`KPE+7jumcw0v@gky?I5QnK_*brz5?wWGBXrfkL_? z(iTs2hTEdi&RD#?J=xyd-aflR{2UL;Pm5@AMXeuRA?5-LYn4cS+gS4J;WoiA_l&3d zMJK;ftOs6d505fyv(C#37kCN60|S8fCr9Cb3ew9kTFk;1GG^qd$i5pBq6fF}goE;q z<20UW{5nM!{9+8xHjzNNOT>}uKwZkIi=sY^x;Sck(IP2(wc~vPH4!l@<1FrEu8*_* zY#v^347H4Z-8Yhf>mG`s!bv#`zt(*4l%(iQA77*e_>gGXtO1+UI zD$f3%f(1M!W}H$KCr}0PZ$fH2&;ALl#3*L7Xm>nc^vXy?$DM=*Ey+V??Rj(Ww&Nf>4!u zb)kJZs6eu+v;)`g(Mf!Lqc=b6#h&1B-SEsmpPqjIlgw}4dgbB=xlel+-&W>=wyW$_ zyF>{Qj{}>rlw*i`>2W=h${#>*mSki~g5>#|68#_S5VC9>-2IDrpy?%LQ>I(_Bk|k8^87DtUd3%2_aELk6hS%T$fH)=?ef*k`9Frv8D{|3|J(8&1Q%uO zMb^UiFcT+}T6-|gAIsW*cn=lwt-3q6ASu4T$-tK1c&GzG`gEa@@h`P}b+1F&Sq0G2!z zdQZA8#mcmq_=9)9?)ke~T-Z}}N2{dIxGQtR{J)CP7|GnY5$PA{9}^ApNGtSysIvd> zf}tv4H%6}1Al?xVA?gkzzUEyoqpj-j%p4<&=HbakFV1~iZ!P;{Oj?_JezR>{{|{lh zhBM`Q^rLk|(+vGy5B)mB2YT)9eL?+Cpg|jGv@H5==yhEDb>r2uhx*oLFJ9_-X>RB0 z*LgJc4!z{`maBgV#QCvNfxFxJi?_!=y8PamGnYR;d$~WX(5=^{-+-8IHeEsj{|9H` B&~^X- literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj new file mode 100644 index 0000000..9717c8b --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj @@ -0,0 +1,62 @@ + + + + + WinDDK + Win32 + + + + {4EE67C57-BE79-4CD7-B3B0-94AECE62DB41} + Win32Proj + "DpcTimerDrv" + + + + + + + + .sys + false + $(WLHBASE)\bin\x86\x86;$(WLHBASE)\bin\x86 + $(WLHBASE)\inc\api;$(WLHBASE)\inc\crt;$(WLHBASE)\inc\ddk;$(WLHBASE)\inc + + $(WLHBASE)\lib\win7\i386 + + + + + + _X86_;DBG=1 + false + false + StdCall + CompileAsC + + + + + ntoskrnl.lib;hal.lib;wdm.lib;%(AdditionalDependencies) + + + true + Native + Driver + DriverEntry + true + 0x10000 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj.user b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/DpcTimerDrv.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/clean.bat b/DpcTimer_x64/DpcTimerDrv/clean.bat new file mode 100644 index 0000000..a92852f --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/clean.bat @@ -0,0 +1,28 @@ +rem ///////////////// +rem / Add by ChiChou +rem / +rem / FileName:Clean.bat +rem / Description:Clean +rem / +rem //////////////// +rd .\bin /s /q +rd .\WinDDK /s /q +rd .\objchk_w2k_x86 /s /q +rd .\objchk_wxp_x86 /s /q +rd .\objchk_wnet_x86 /s /q +rd .\objchk_wlh_x86 /s /q +rd .\objfre_w2k_x86 /s /q +rd .\objfre_wxp_x86 /s /q +rd .\objfre_wnet_x86 /s /q +rd .\objfre_wlh_x86 /s /q +del .\*.log +del .\*.err +del .\*.xml +rem ***** del VS2005 file ***** +del .\*.ncb +del .\*.user +del .\*.suo /A:H +rem ***** del VS6.0 file ***** +del .\*.plg +del .\*.opt +exit \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/ddkbuild.cmd b/DpcTimer_x64/DpcTimerDrv/ddkbuild.cmd new file mode 100644 index 0000000..8acd7a4 --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/ddkbuild.cmd @@ -0,0 +1,1122 @@ +@echo off +@set VERSION=V7.3 +@set OSR_DEBUG=off +@if "%OS%"=="Windows_NT" goto :Prerequisites +@echo This script requires Windows NT 4.0 or later to run properly! +goto :EOF +:Prerequisites +:: Check whether FINDSTR is available. It's used to show warnings etc. +findstr /? > NUL 2>&1 || echo "FINDSTR is a prerequisite but wasn't found!" && goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: +:: $Id: ddkbuild.cmd 27 2008-09-06 12:02:06Z oliver $ +:: +:: This software is supplied for instructional purposes only. +:: +:: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty +:: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY +:: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, +:: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR +:: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS +:: WITH YOU. OSR's entire liability and your exclusive remedy shall not +:: exceed the price paid for this material. In no event shall OSR or its +:: suppliers be liable for any damages whatsoever (including, without +:: limitation, damages for loss of business profit, business interruption, +:: loss of business information, or any other pecuniary loss) arising out +:: of the use or inability to use this software, even if OSR has been +:: advised of the possibility of such damages. Because some states/ +:: jurisdictions do not allow the exclusion or limitation of liability for +:: consequential or incidental damages, the above limitation may not apply +:: to you. +:: +:: OSR Open Systems Resources, Inc. +:: 105 Route 101A Suite 19 +:: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 +:: report bugs to +:: alternatively report them via +:: +:: +:: MODULE: +:: +:: ddkbuild.cmd +:: +:: ABSTRACT: +:: +:: This script allows drivers to be built with Visual Studio 2002 through +:: Visual Studio 2008 and possibly future versions. It will also work fine +:: from the command line. +:: If you are interested in a project wizard that makes use of this script, +:: try DDKWizard from . +:: +:: AUTHOR(S): +:: +:: - OSR Open Systems Resources, Inc. +:: - Oliver Schneider (ddkwizard.assarbad.net) +:: +:: REQUIREMENTS: +:: +:: Environment variables that must be set. +:: %NT4BASE% - Set this up for "-NT4" builds (legacy, support not tested) +:: %W2KBASE% - Set this up for "-W2K*" builds (legacy, support not tested) +:: %WXPBASE% - Set this up for "-WXP*" builds +:: %WNETBASE% - Set this up for "-WNET*" builds +:: %WLHBASE% - Set this up for "-WLH*" builds +:: %WDF_ROOT% - Must be set if attempting to do a WDF Build. +:: +:: Examples: +:: NT4BASE : could be "D:\NT4DDK" +:: W2KBASE : could be "D:\Nt50DDK" +:: WXPBASE : could be "D:\WINDDK\2600" +:: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" +:: +:: COMMAND FORMAT: +:: +:: Run the script without any parameters to get the whole help content! +:: Note: "-WDF" has been tested with the 01.00.5054 version of the framework +:: +:: RETURN CODES AND THEIR MEANING: +:: +:: 001 == Unknown build type. Check the parameter +:: 002 == No WDF_ROOT given using WDF build type. +:: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, +:: WNETBASE) is not set at all and could not be auto-detected! +:: 004 == BASEDIR variable is empty. Check to see that the DDK-specific +:: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) +:: 005 == No mode (checked/free) was given. Check the respective parameter! +:: 006 == No DIR or SOURCES file found in the given target directory. +:: 007 == No target directory given. +:: 008 == Given target directory does not exist. +:: 009 == The SETENV script failed. +:: +:: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems +:: from one of the tools being called during the build process. +:: +:: BROWSE FILES: +:: +:: This procedure supports the building of BROWSE files to be used by +:: Visual Studio 6 and by Visual Studio.NET However, the BSCfiles created +:: by bscmake for the two are not compatible. When this command procedure +:: runs, it selects the first bscmake.exe found in the path. So, make sure +:: that the correct bscmake.exe is in the path ... +:: +:: Note that if using Visual Studio.NET the .BSC must be added to the project +:: in order for the project to be browsed. +:: Another alternative is the VS addon named "Visual Assist X" which will +:: parse the header files - no more need for browse files. +:: +:: COMPILERS: +:: +:: If you are building NT4 you should really be using the VC6 compiler. +:: Later versions of the DDK now contain the compiler and the linker. This +:: procedure should use the correct compiler. +:: +:: GENERAL COMMENTS: +:: +:: This procedure has been cleaned up to be modular and easy to understand. +:: +:: As of the Server 2003 SP1 DDK DDKBUILD now clears the NO_BROWSE_FILE and +:: NO_BINPLACE environment variables so that users can use these features. +:: +:: Starting with the Vista WDK, the output in the respective tool window +:: in VS is in Unicode by default. This garbles the output from DDKBUILD +:: and we therefore clear the environment variable VS_UNICODE_OUTPUT. +:: +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / MAIN function of the script +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:MAIN +:: Building "stack frame" +setlocal ENABLEEXTENSIONS & pushd . +:: Check whether the REG utility is available +reg /? > NUL 2>&1 && set OSR_REGAVAILABLE=1 + +:: This is set by client-side keyword substitution +set SVN_REVISION=$Revision: 27 $ +:: Extract the revision number from the revision keyword +set SVN_REVISION=%SVN_REVISION:~0,-2% +set SVN_REVISION=%SVN_REVISION:~11% +:: This is set by client-side keyword substitution +set SVN_REVDATE=$Date: 2008-09-06 12:02:06 +0000 (Sat, 06 Sep 2008) $ +:: Extract the date from the Date keyword +set SVN_REVDATE=%SVN_REVDATE:~7,10% +set VERSION=%VERSION%/r%SVN_REVISION% + +:: Init some special variables +set OSR_VERSTR=OSR DDKBUILD.CMD %VERSION% (%SVN_REVDATE%) - OSR, Open Systems Resources, Inc. +set OSR_PREBUILD_SCRIPT=ddkprebld.cmd +set OSR_POSTBUILD_SCRIPT=ddkpostbld.cmd +set OSR_SETENV_SCRIPT=ddkbldenv.cmd +set OSR_ECHO=@echo DDKBLD: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Set error messages +:: Possible codes: 1 +set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. +:: Possible codes: 2 +set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? +:: Possible codes: 3 +set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! +:: Possible codes: 4 +set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. +:: Possible codes: 5 +set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). +:: Possible codes: 6 +set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. +:: Possible codes: 7, 8 +set ERR_NoDir=The ^ parameter must be a valid directory. +:: Possible codes: 9 +set ERR_SetEnvFailed=The SETENV script failed. + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Clear the error code variable +set OSR_ERRCODE=0 +set prefast_build=0 + +:: Turn on tracing, use %OSR_TRACE% instead of ECHO +if /i "%OSR_DEBUG%" == "on" (set OSR_TRACE=%OSR_ECHO% [TRACE]) else (set OSR_TRACE=rem) +:: Turn on echoing of current line if %OSR_DEBUG% is set to "on" +@echo %OSR_DEBUG% + +:: Output version string +@echo %OSR_VERSTR% +%OSR_TRACE% ^(Current module: ^"%~f0^"^) +@echo. + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Set the target platform variable +set OSR_TARGET=%~1 +:: Remove any dashes in the variable +if not "%OSR_TARGET%" == "" set OSR_TARGET=%OSR_TARGET:-=% +:: Show help if the target parameter is empty after removal of the dashes +if "%OSR_TARGET%" == "" goto :USAGE + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: In the build directory check for this script and call it if it exists. +:: This allows to override any global system variable setting, if desired. +if not "%3" == "" call :GetCustomEnvironment "%~f3" +if not "%OSR_ERRCODE%" == "0" goto :USAGE +:: Additional error handling for better usability +:: These subroutines will also attempt to locate the requested DDK!!! +set OSR_ERRCODE=3 +%OSR_TRACE% Checking whether the environment variable for the build type was set +:: Calling as a subroutine has 2 advantages: +:: 1. the script does not quit if the label was not found +:: 2. we return to the line after the call and can check variables there +call :%OSR_TARGET%Check > NUL 2>&1 +:: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! +if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE +if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE +if not "%OSR_ERRCODE%" == "0" call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +set BASEDIR=%%%BASEDIRVAR%%% +call :ResolveVar BASEDIR +call :MakeShort BASEDIR "%BASEDIR%" +:: Check for existing %BASEDIR% +if "%BASEDIR%" == "" call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE +set PATH=%BASEDIR%\bin;%PATH% +%OSR_TRACE% Now jump to the initialization of the commandline +:: Calling as a subroutine has 2 advantages: +:: 1. the script does not quit if the label was not found +:: 2. we return to the line after the call and can check variables there +call :%OSR_TARGET%Build + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +%OSR_TRACE% We returned from the variable initialization +if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE + +%OSR_TRACE% Hurrah, all the variables have been initialized, continuing +:: Proceed with common build steps +goto :CommonBuild + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Check whether the parameter makes sense and try to +:: correct it if possible +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: These labels are for compatibility with the respective +:: modes supported by another flavor of DDKBUILD. +:WLH64Check +:WLHA64Check +:WLHXP64Check +:WLHNET64Check +:WLHNETA64Check +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:WLHCheck +:WLHX64Check +:WLHI64Check +:WLHNETX64Check +:WLHNETI64Check +:WLHXPCheck +:WLH2KCheck +:WLHNETCheck +set BASEDIROS=Windows Vista/Windows 2008 Server +set BASEDIRVAR=WLHBASE +:: Compatibility between BUILD and VS ... prevent pipes from being used +%OSR_ECHO% Clearing %%VS_UNICODE_OUTPUT%% ... +set VS_UNICODE_OUTPUT= +:: Return to caller if the BASEDIR is already defined (either customized or global) +if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn +call :DetectBaseDirTemp "6001.18000 6000" +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn +goto :CommonCheckErrorNotSupportedWithReturn + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: These labels are for compatibility with the respective +:: modes supported by another flavor of DDKBUILD. +:WNETW2KCheck +:WNETA64Check +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:WNET2KCheck +:WNETXPCheck +:WNETWXPCheck +:WNETXP64Check +:WNET64Check +:WNETI64Check +:WNETAMD64Check +:WNETX64Check +:WNETCheck +set BASEDIROS=Windows 2003 Server +set BASEDIRVAR=WNETBASE +:: Return to caller if the BASEDIR is already defined (either customized or global) +if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn +call :DetectBaseDirTemp "3790.1830 3790.1218 3790" +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn +goto :CommonCheckErrorNotDetectedWithReturn + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: These labels are for compatibility with the respective +:: modes supported by another flavor of DDKBUILD. +:XPCheck +:XP64Check +:XPW2KCheck +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:WXP64Check +:WXPI64Check +:WXPCheck +:WXP2KCheck +set BASEDIROS=Windows XP +set BASEDIRVAR=WXPBASE +:: Other flavor of DDKBUILD +if not DEFINED WXPBASE if DEFINED XPBASE set BASEDIRVAR=XPBASE +:: Return to caller if the BASEDIR is already defined (either customized or global) +if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn +call :DetectBaseDirTemp "2600.1106 2600" +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn +goto :CommonCheckErrorNotDetectedWithReturn + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:W2K64Check +:W2KI64Check +:W2KCheck +set BASEDIROS=Windows 2000 +set BASEDIRVAR=W2KBASE +:: Return to caller +if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn +call :CommonCheckMsg2 +goto :CommonCheckErrorNotSupportedWithReturn + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:NT4Check +set BASEDIROS=Windows NT4 +set BASEDIRVAR=NT4BASE +:: Return to caller +if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn +call :CommonCheckMsg2 +goto :CommonCheckErrorNotSupportedWithReturn + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:CommonCheckMsg1 +echo. +%OSR_ECHO% WARNING: %%%BASEDIRVAR%%% NOT SET! +%OSR_ECHO% Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. +%OSR_ECHO% (If this fails *you* will have to set it!) +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:CommonCheckMsg2 +echo. +%OSR_ECHO% WARNING: +%OSR_ECHO% Auto-detection of the folder settings is not supported for the requested DDK. +%OSR_ECHO% Please set %%%BASEDIRVAR%%% yourself! +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:CommonCheckSetVarWithReturn +%OSR_ECHO% Found! +echo. +set %BASEDIRVAR%=%BASEDIRTEMP% +set BASEDIRTEMP= +:: Tell the caller it was successful +:CommonCheckNoErrorWithReturn +set OSR_ERRCODE=0 +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:CommonCheckErrorNotDetectedWithReturn +echo. +%OSR_ECHO% None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! +:CommonCheckErrorNotSupportedWithReturn +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Initialize variables specific to the respective platform +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: +:: Valid parameters for setenv in different DDKs/WDKs: +:: +:: 2600 - "setenv [fre|chk] [64] [hal]" +:: 2600.1106 - "setenv [fre|chk] [64] [hal] [WXP|W2K]" +:: 3790 - "setenv [fre|chk] [64|AMD64] [hal] [WXP|WNET|W2K]" +:: 3790.1830 - "setenv [fre|chk] [64|AMD64] [hal] [WXP|WNET|W2K] [no_prefast] [bscmake]" +:: 6000 - "setenv [fre|chk] [64|AMD64] [hal] [WLH|WXP|WNET|W2K] [bscmake]" +:: 6001.18000 - "setenv [fre|chk] [64|x64] [hal] [WLH|WXP|WNET|W2K] [bscmake]" + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: NT 4.0 build using NT4 DDK +:NT4Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: W2K build for 32bit using WXP DDK +:XPW2KBuild +:WXP2KBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\w2k\set2k.bat" %%BASEDIR%% %%BuildMode%% +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: W2K build for 64bit (Intel) using W2K DDK +:W2K64Build +:W2KI64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv64.bat" %%BASEDIR%% %%BuildMode%% +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: W2K build for 32bit using W2K DDK +:W2KBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WXP build for 64bit (Intel) using WXP DDK +:XP64Build +:WXP64Build +:WXPI64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% 64 +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WXP build for 32bit using WXP DDK +:XPBuild +:WXPBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: W2K build for 32bit using WNET DDK +:WNETW2KBuild +:WNET2KBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% W2K %%BuildMode%% +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WXP build for 32bit using WNET DDK +:WNETXPBuild +:WNETWXPBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% WXP +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WXP build for 64bit using WNET DDK +:WNETXP64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% 64 WXP +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WNET build for 64bit (Intel) using WNET DDK +:WNET64Build +:WNETI64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% 64 WNET +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WNET build for 64bit (AMD) using WNET DDK +:WNETA64Build +:WNETAMD64Build +:WNETX64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% AMD64 WNET +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WNET build for 32bit using WNET DDK +:WNETBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WLH build for 32bit using WLH DDK +:WLHBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% WLH +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WLH build for 64bit (AMD) using WLH DDK +:WLHA64Build +:WLHX64Build +call :DetectVistaWDK +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% %OSR_AMD64FLAG% WLH +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WLH build for 64bit (Intel) using WLH DDK +:WLH64Build +:WLHI64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% 64 WLH +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WNET build for 64bit (AMD) using WLH DDK +:WLHNETA64Build +:WLHNETX64Build +call :DetectVistaWDK +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% %OSR_AMD64FLAG% WNET +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WNET build for 64bit (Intel) using WLH DDK +:WLHNET64Build +:WLHNETI64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% 64 WNET +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WXP build for 32bit using WLH DDK +:WLHXPBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% WXP +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WXP build for 64bit (Intel) using WLH DDK +:WLHXP64Build +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% 64 WXP +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: W2K build for 32bit using WLH DDK +:WLH2KBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% W2K +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: WNET build for 32bit using WLH DDK +:WLHNETBuild +set OSR_CMDLINE="%%BASEDIR%%\bin\setenv.bat" %%BASEDIR%% %%BuildMode%% WNET +goto :EOF + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: All builds go here for the rest of the procedure. Now, +:: we are getting ready to call build. The big problem +:: here is to figure our the name of the buildxxx files +:: being generated for the different platforms. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +:CommonBuild +:: Remove first command line arg +shift +call :SetMode %1 +if not "%OSR_ERRCODE%" == "0" call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE +set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% + +call :CheckTargets %2 +if "%OSR_ERRCODE%" == "6" call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE +if not "%OSR_ERRCODE%" == "0" call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE + +:: Resolve any variables in the command line string +call :ResolveVar OSR_CMDLINE + +pushd . +set ERRORLEVEL=0 +:: This external script prepares the build environment (e.g. setenv.bat) +call %OSR_CMDLINE% +:: Will only work with newer SETENV.BAT versions, but will be helpful in this case. +if not "%ERRORLEVEL%" == "0" call :ShowErrorMsg 9 "%ERR_SetEnvFailed%" & goto :USAGE +popd + +:: ---------------------------------------------------------------------------- +:: Setting global variables for the scope of this CMD session +set NO_BROWSER_FILE= +set NO_BINPLACE= +set buildDirectory=%~fs2 +call :MakeShort buildDirectory "%buildDirectory%" +set buildDirectory_raw=%2 +set buildDirectory_fname=%~n2 +%OSR_TRACE% buildDirectory == %buildDirectory% +%OSR_TRACE% buildDirectory_raw == %buildDirectory_raw% +%OSR_TRACE% buildDirectory_fname == %buildDirectory_fname% + +set mpFlag=-M +if "%BUILD_ALT_DIR%" == "" goto :NT4 + +:: W2K sets this! +set OSR_EXT=%BUILD_ALT_DIR% +set mpFlag=-MI + +:NT4 +if "%NUMBER_OF_PROCESSORS%" == "" set mpFlag= +if "%NUMBER_OF_PROCESSORS%" == "1" set mpFlag= + +:: Set additional variables at this point or do whatever you please +@if exist "%buildDirectory%\%OSR_PREBUILD_SCRIPT%" @( + %OSR_ECHO% ^>^> Performing pre-build steps [%OSR_PREBUILD_SCRIPT%] ... + pushd "%buildDirectory%" + call "%OSR_PREBUILD_SCRIPT%" > "%TEMP%\%OSR_PREBUILD_SCRIPT%.tmp" + for /f "tokens=*" %%x in ('type "%TEMP%\%OSR_PREBUILD_SCRIPT%.tmp"') do @( + %OSR_ECHO% %%x + ) + if exist "%TEMP%\%OSR_PREBUILD_SCRIPT%.tmp" del /f /q "%TEMP%\%OSR_PREBUILD_SCRIPT%.tmp" + popd + %OSR_ECHO% ^<^< Finished pre-build steps [%OSR_PREBUILD_SCRIPT%] ... +) +:: Save the current directory (before changing into the build directory!) +:: AFTERPREBUILD +pushd . + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Determine the settings of flags, WDF and PREFAST in +:: other words what was set for %3 and beyond.... +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +%OSR_ECHO% %OSR_BUILDNAME% +set OSR_ARGS= + argument(s): +if not "%3" == "" set OSR_ARGS=%OSR_ARGS% %3 +if not "%4" == "" set OSR_ARGS=%OSR_ARGS% %4 +if not "%5" == "" set OSR_ARGS=%OSR_ARGS% %5 +if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= +%OSR_ECHO% Directory: %buildDirectory%%OSR_ARGS% +%OSR_ECHO% %BASEDIRVAR%: %BASEDIR% + +cd /D %~s2 +set bFlags=-Ze +set bscFlags= + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:ContinueParsing +if "%3" == "" goto :DONE +if "%3" == "/a" goto :RebuildallFound +if /i "%3" == "-WDF" goto :WDFFound +if /i "%3" == "-PREFAST" goto :PrefastFound +set bscFlags=/n +set bFlags=%bFlags% %3 +:: Remove next arg +shift +goto :ContinueParsing + +:WDFFound +shift +:: Note, that the setwdf.bat is called from setenv.bat in the WDK, +:: therefore we skip it. +if /i "%BASEDIRVAR%" == "WLHBASE" goto :WDFOkay +if "%WDF_ROOT%" == "" call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE +pushd . +if exist "%WDF_ROOT%\set_wdf_env.cmd" call "%WDF_ROOT%\set_wdf_env.cmd" +popd +:WDFOkay +goto :ContinueParsing + +:PrefastFound +shift +set prefast_build=1 +goto :ContinueParsing + +:RebuildallFound +shift +set bscFlags=/n +set bFlags=%bFlags:-Ze=-cfeZ% +set bFlags=%bFlags: -cZ=% +goto :ContinueParsing +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +:DONE +for %%x in (build%OSR_EXT%.err build%OSR_EXT%.wrn build%OSR_EXT%.log prefast%OSR_EXT%.log) do @( + if exist "%%x" del /f /q "%%x" +) + +if not "%prefast_build%" == "0" goto :RunPrefastBuild +%OSR_ECHO% Run build %mpFlag% %bFlags% for %BuildMode% version in %buildDirectory_raw% +pushd . +build %mpFlag% %bFlags% +popd +goto :BuildComplete + +:RunPrefastBuild +%OSR_ECHO% Run prefast build %mpFlag% %bFlags% for %BuildMode% version in %buildDirectory_raw% +setlocal ENABLEEXTENSIONS & pushd . +set PREFASTLOG=PREfast_defects_%OSR_EXT%.xml +prefast /log=%PREFASTLOG% /reset build %mpFlag% %bFlags% > NUL 2>&1 +if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% +prefast /log=%PREFASTLOG% list > prefast%OSR_EXT%.log +%OSR_ECHO% The PREfast logfile is ^"%prefastlog%^"! +popd & endlocal + +:BuildComplete +if not "%errorlevel%" == "0" set OSR_ERRCODE=%errorlevel% + +@echo %OSR_DEBUG% +:: Assume that the onscreen errors are complete! +setlocal +set WARNING_FILE_COUNT=0 +if exist "build%OSR_EXT%.log" for /f "tokens=*" %%x in ('findstr "warning[^.][DRCLU][0-9][0-9]* error[^.][DRCLU][0-9][0-9]*" "build%OSR_EXT%.log"') do @( + set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 +) +if not "%WARNING_FILE_COUNT%" == "0" ( + %OSR_ECHO% ================ Build warnings ======================= + if exist "build%OSR_EXT%.log" for /f "tokens=*" %%x in ('findstr "warning[^.][DRCLU][0-9][0-9]* error[^.][DRCLU][0-9][0-9]*" "build%OSR_EXT%.log"') do @( + @echo %%x + ) +) +set WARNING_FILE_COUNT_PRE=0 +if exist "prefast%OSR_EXT%.log" for /f "tokens=*" %%x in ('findstr "warning[^.][CLU]*" "prefast%OSR_EXT%.log"') do @( + set /a WARNING_FILE_COUNT_PRE=%WARNING_FILE_COUNT_PRE%+1 +) +:: Reset if this is no PREfast build +if "%prefast_build%" == "0" set WARNING_FILE_COUNT_PRE=0 +if not "%WARNING_FILE_COUNT_PRE%" == "0" ( + %OSR_ECHO% =============== PREfast warnings ====================== + if exist "prefast%OSR_EXT%.log" for /f "tokens=*" %%x in ('findstr "warning[^.][CLU]*" "prefast%OSR_EXT%.log"') do @( + @echo %%x + ) +) +set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+%WARNING_FILE_COUNT_PRE% +if not "%WARNING_FILE_COUNT%" == "0" ( + %OSR_ECHO% ======================================================= +) +endlocal +@echo. +%OSR_ECHO% Build complete +%OSR_ECHO% Building browse information files +if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps +set sbrlist=sbrList.txt +if not exist sbrList%CPU%.txt goto :sbrDefault +set sbrlist=sbrList%CPU%.txt + +:sbrDefault +if not exist %sbrlist% goto :postBuildSteps +:: Prepend blank space +if not "%bscFlags%" == "" set bscFlags= %bscFlags% +:: bscmake%bscFlags% prevents a double blank space ... +bscmake%bscFlags% @%sbrlist% + +:: Perform whatever post-build steps +:postBuildSteps +:: Restore the current directory (after changing into the build directory!) +:: Search upwards for "AFTERPREBUILD" to find the corresponding PUSHD +popd +@if exist "%buildDirectory%\%OSR_POSTBUILD_SCRIPT%" @( + %OSR_ECHO% ^>^> Performing post-build steps [%OSR_POSTBUILD_SCRIPT%] ... + pushd "%buildDirectory%" + call "%OSR_POSTBUILD_SCRIPT%" > "%TEMP%\%OSR_POSTBUILD_SCRIPT%.tmp" + for /f "tokens=*" %%x in ('type "%TEMP%\%OSR_POSTBUILD_SCRIPT%.tmp"') do @( + %OSR_ECHO% %%x + ) + if exist "%TEMP%\%OSR_POSTBUILD_SCRIPT%.tmp" del /f /q "%TEMP%\%OSR_POSTBUILD_SCRIPT%.tmp" + popd + %OSR_ECHO% ^<^< Finished post-build steps [%OSR_POSTBUILD_SCRIPT%] ... +) +goto :END +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ MAIN function of the script +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / GetCustomEnvironment +:: First parameter is the "directory" that supposedly contains the SOURCES +:: or DIRS file (and the build scripts) +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:GetCustomEnvironment +pushd . +call :CheckTargets "%~f1" +@if not "%OSR_ERRCODE%" == "0" @( + echo. + %OSR_ECHO% The target directory seemed to not contain a DIRS or SOURCES file + %OSR_ECHO% when trying to set a custom environment! Quitting. + set buildDirectory=%~f1 + if "%OSR_ERRCODE%" == "6" call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :GetCustomEnvironment_ret + call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :GetCustomEnvironment_ret + goto :GetCustomEnvironment_ret +) +:: If the user provided a script to customize the environment, execute it. +@if exist "%~f1\%OSR_SETENV_SCRIPT%" @( + %OSR_ECHO% ^>^> Setting custom environment variables [%OSR_SETENV_SCRIPT%] ... + pushd "%~f1" + call "%OSR_SETENV_SCRIPT%" > "%TEMP%\%OSR_SETENV_SCRIPT%.tmp" + for /f "tokens=*" %%x in ('type "%TEMP%\%OSR_SETENV_SCRIPT%.tmp"') do @( + %OSR_ECHO% %%x + ) + if exist "%TEMP%\%OSR_SETENV_SCRIPT%.tmp" del /f /q "%TEMP%\%OSR_SETENV_SCRIPT%.tmp" + popd + %OSR_ECHO% ^<^< Finished setting custom environment variables [%OSR_SETENV_SCRIPT%] ... +) +:GetCustomEnvironment_ret +popd +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ GetCustomEnvironment +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / SetMode +:: Subroutine to validate the mode of the build passed in. It must be free, +:: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:SetMode +set BuildMode= +if /i "%OSR_TARGET%" == "WLH2K" goto :SetModeWLH2K +for %%f in (free fre) do if /i "%%f" == "%1" set BuildMode=free +for %%f in (checked chk) do if /i "%%f" == "%1" set BuildMode=checked +goto :SetModeCommonEnd +:SetModeWLH2K +for %%f in (free fre) do if /i "%%f" == "%1" set BuildMode=f +for %%f in (checked chk) do if /i "%%f" == "%1" set BuildMode=c +:SetModeCommonEnd +%OSR_TRACE% Mode set to ^"%BuildMode%^" +if "%BuildMode%" == "" set OSR_ERRCODE=5 +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ SetMode +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / CheckTargets subroutine +:: Subroutine to validate that the target directory exists and that there is +:: either a DIRS or SOURCES and MakeFile in it. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:CheckTargets +:: Building "stack frame" +setlocal & pushd . & set OSR_ERRCODE=0 +set lTarget=%~1 +if not "%lTarget%" == "" goto :CheckTargets1 +set OSR_ERRCODE=7 +goto :CheckTargets_ret +:CheckTargets1 +if exist "%lTarget%" goto :CheckTargets2 +set OSR_ERRCODE=8 +goto :CheckTargets_ret +:CheckTargets2 +if not exist "%lTarget%\DIRS" goto :CheckTargets3 +set OSR_ERRCODE=0 +goto :CheckTargets_ret +:CheckTargets3 +if exist "%lTarget%\SOURCES" goto :CheckTargets4 +set OSR_ERRCODE=6 +goto :CheckTargets_ret +:CheckTargets4 +if exist "%lTarget%\MAKEFILE" goto :CheckTargets5 +set OSR_ERRCODE=6 +goto :CheckTargets_ret +:CheckTargets5 +set OSR_ERRCODE=0 +:CheckTargets_ret +:: Cleaning "stack frame" and returning error code into global scope +popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ CheckTargets subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / ResolveVar subroutine +:: There is only one parameter, the name of the variable to be resolved! +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:ResolveVar +:: Get the name of the variable we are working with +setlocal ENABLEEXTENSIONS & set VAR_NAME=%1 +set VAR_TEMPRET2=%%%VAR_NAME%%% +:ResolveVarLoop +set VAR_TEMPRET1=%VAR_TEMPRET2% +set VAR_TEMPRET2=%VAR_TEMPRET1% +for /f "tokens=*" %%i in ('echo %VAR_TEMPRET1%') do ( + set VAR_TEMPRET2=%%i +) +if not "%VAR_TEMPRET1%" == "%VAR_TEMPRET2%" goto :ResolveVarLoop +:: Re-export the variable out of the local scope +endlocal & set %VAR_NAME%=%VAR_TEMPRET1% +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ ResolveVar subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / MakeShort subroutine +:: Two parameters. First parameter is the variable name, second is the path +:: to convert into a short filename. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:MakeShort +setlocal ENABLEEXTENSIONS +:: Get the name of the variable we are working with and the path to convert +set VAR_NAME=%~1 +set PATH_SHORT=%~dpns2 +set PATH_EXTSHORT=%~xs2 +if not "" == "%PATH_EXTSHORT%" set PATH_EXTSHORT=%PATH_EXTSHORT:~0,4% +set PATH_SHORT=%PATH_SHORT%%PATH_EXTSHORT% +endlocal & set %VAR_NAME%=%PATH_SHORT% +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ MakeShort subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / ErrorWithUsage subroutine +:: This one will take the passed in parameters and build a nice error +:: message which is returned to the user along with the usage hints. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:ShowErrorMsg +@set OSR_ERRCODE=%~1 +@set OSR_ERRMSG=%~2 +@set OSR_ERRMSG=%OSR_ERRMSG:'="% +@set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% +@echo. +%OSR_ECHO% %OSR_ERRMSG% +if DEFINED buildDirectory %OSR_ECHO% -^> Target directory: %buildDirectory% +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ ErrorWithUsage subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / SetVar subroutine +:: Param1 == name of the variable, Param2 == value to be set for the variable +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:SetVar +:: Get the name of the variable we are working with +setlocal ENABLEEXTENSIONS & set VAR_NAME=%1 +endlocal & set %VAR_NAME%=%~2 +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ SetVar subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / DetectVistaWDK subroutine +:: No parameters expected +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:DetectVistaWDK +setlocal ENABLEEXTENSIONS +:: Newer flag (starting with W2K8) is default +set OSR_AMD64FLAG=x64 +:: The Vista WDK accepted *only* "AMD64", the newer W2K8 WDK accepts only "x64" +:: We detect the older one by checking the setenv.bat for a certain string +findstr /C:"Windows Server Longhorn" "%BASEDIR%\bin\setenv.bat" > NUL 2>&1 && set OSR_AMD64FLAG=AMD64 +endlocal & set OSR_AMD64FLAG=%OSR_AMD64FLAG% +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ DetectVistaWDK subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / DetectBaseDirTemp subroutine +:: The first parameter is the list of directory names to check, separated by +:: blank spaces. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:DetectBaseDirTemp +:: Get the name of the variable we are working with +if "%~1" == "" goto :EOF +setlocal ENABLEEXTENSIONS +call :CommonCheckMsg1 +:: Try to find an installed DDK/WDK from the registry keys +if DEFINED OSR_REGAVAILABLE if not "%OSR_REGAVAILABLE%" == "0" ( + for %%i in (%~1) do @( + call :RegTryBaseDirTemp "%%i" + ) +) +:: Try all the "default" locations +if not DEFINED BASEDIRTEMP ( + for %%i in (%~1) do @( + for %%a in (WINDDK DDK) do @( + call :BruteTryBaseDirTemp "%SystemDrive%\%%a\%%i" + call :BruteTryBaseDirTemp "%ProgramFiles%\%%a\%%i" + ) + ) +) +endlocal & set BASEDIRTEMP=%BASEDIRTEMP% +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ DetectBaseDirTemp subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / RegTryBaseDirTemp subroutine +:: Attempt to find the install key in the registry. +:: This functions tests old-style DDKs and new-style WDKs. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:RegTryBaseDirTemp +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :EOF +setlocal ENABLEEXTENSIONS +call :RegTryBaseDirTempSingle "%~1" "LFNDirectory" BASEDIRTEMP +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :RegTryBaseDirTemp_EOF +call :RegTryBaseDirTempSingle "%~1\Setup" "BUILD" BASEDIRTEMP +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :RegTryBaseDirTemp_EOF +if not DEFINED BASEDIRTEMP (endlocal & goto :EOF) +:RegTryBaseDirTemp_EOF +%OSR_ECHO% Found directory (%BASEDIRTEMP%) from install key +endlocal & set BASEDIRTEMP=%BASEDIRTEMP% & goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ RegTryBaseDirTemp subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / RegTryBaseDirTempSingle subroutine +:: Attempt to find the install key in the registry. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:RegTryBaseDirTempSingle +setlocal ENABLEEXTENSIONS +set REGSUBKEY=%~1 +set REGVALUE=%~2 +set VARIABLETOSET=%~3 +set REGMAINKEY=HKLM\SOFTWARE\Microsoft\WINDDK +:: Test whether we can read the value below this key +reg query "%REGMAINKEY%\%REGSUBKEY%" /v "%REGVALUE%" > NUL 2>&1 || goto :RegTryBaseDirTempSingle_WOW64 +for /f "tokens=2*" %%i in ('reg query "%REGMAINKEY%\%REGSUBKEY%" /v "%REGVALUE%"^|findstr /C:"%REGVALUE%"') do @( + call :SetVar _SETVARIABLE "%%j" +) +endlocal & set %VARIABLETOSET%=%_SETVARIABLE% +:RegTryBaseDirTempSingle_WOW64 +set REGMAINKEY=HKLM\SOFTWARE\Wow6432Node\Microsoft\WINDDK +:: Test whether we can read the value below this key +reg query "%REGMAINKEY%\%REGSUBKEY%" /v "%REGVALUE%" > NUL 2>&1 || goto :RegTryBaseDirTempSingle_EOF +for /f "tokens=2*" %%i in ('reg query "%REGMAINKEY%\%REGSUBKEY%" /v "%REGVALUE%"^|findstr /C:"%REGVALUE%"') do @( + call :SetVar _SETVARIABLE "%%j" +) +endlocal & set %VARIABLETOSET%=%_SETVARIABLE% +:RegTryBaseDirTempSingle_EOF +endlocal +goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ RegTryBaseDirTempSingle subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: / BruteTryBaseDirTemp subroutine +:: Brute-force test the given directory. +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:BruteTryBaseDirTemp +if DEFINED BASEDIRTEMP if exist "%BASEDIRTEMP%" goto :EOF +setlocal ENABLEEXTENSIONS +:: We will not overwrite BASETEMPDIR if it has been set and is valid +:: Just try +set BASEDIRTEMP=%~1 +%OSR_ECHO% Trying %BASEDIRTEMP% ... +if not exist "%BASEDIRTEMP%" (endlocal & goto :EOF) +endlocal & set BASEDIRTEMP=%BASEDIRTEMP% & goto :EOF +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: \ BruteTryBaseDirTemp subroutine +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: Usage output +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:USAGE +@echo. +@echo USAGE: +@echo ====== +@echo %~n0 ^ ^ ^ [flags] [-WDF] [-PREFAST] +@echo. +@echo Values for ^: +@echo -------------------------------------------------------------------------- +@echo Target platform and OS ^| Miscellaneous +@echo --------------------------^|----------------------------------------------- +@echo Target ^| Windows ^| CPU ^| Base directory ^| Target alias(es) +@echo ------------^|-------------^|---------^|----------------^|-------------------- +@echo -W2K ^| 2000 ^| x86 ^| %%W2KBASE%% ^| +@echo -W2K64 ^| 2000 ^| Itanium ^| %%W2KBASE%% ^| -W2KI64 +@echo -WXP ^| XP ^| x86 ^| %%WXPBASE%% ^| -XP +@echo -WXP64 ^| XP ^| Itanium ^| %%WXPBASE%% ^| -WXPI64, -XP64 +@echo -WXP2K ^| 2000 ^| x86 ^| %%WXPBASE%% ^| -XPW2K +@echo -WNET ^| 2003 ^| x86 ^| %%WNETBASE%% ^| +@echo -WNET64 ^| 2003 ^| Itanium ^| %%WNETBASE%% ^| -WNETI64 +@echo -WNETXP ^| XP ^| x86 ^| %%WNETBASE%% ^| +@echo -WNETXP64 ^| XP ^| Itanium ^| %%WNETBASE%% ^| +@echo -WNETAMD64 ^| 2003/XP x64 ^| x64 ^| %%WNETBASE%% ^| -WNETX64, -WNETA64 +@echo -WNET2K ^| 2000 SP3 ^| x86 ^| %%WNETBASE%% ^| -WNETW2K +@echo -WLH ^| Vista/2008 ^| x86 ^| %%WLHBASE%% ^| +@echo -WLH2K ^| 2000 SP4 ^| x86 ^| %%WLHBASE%% ^| +@echo -WLHXP ^| XP ^| x86 ^| %%WLHBASE%% ^| +@echo -WLHXP64 ^| XP ^| Itanium ^| %%WLHBASE%% ^| +@echo -WLHNET ^| 2003 ^| x86 ^| %%WLHBASE%% ^| +@echo -WLHNETI64 ^| 2003 ^| Itanium ^| %%WLHBASE%% ^| -WLHNET64 +@echo -WLHNETX64 ^| 2003/XP x64 ^| x64 ^| %%WLHBASE%% ^| -WLHNETA64 +@echo -WLHI64 ^| Vista/2008 ^| Itanium ^| %%WLHBASE%% ^| -WLH64 +@echo -WLHX64 ^| Vista/2008 ^| x64 ^| %%WLHBASE%% ^| -WLHA64 +@echo -NT4 ^| NT 4.0 ^| x86 ^| %%NT4BASE%% ^| +@echo -------------------------------------------------------------------------- +@echo Support for NT4 and W2K DDKs is deprecated and not checked anymore +@echo in new versions. It may or may not work properly. +@echo -------------------------------------------------------------------------- +@echo. +@echo Values for ^: +@echo checked, chk indicates a checked build +@echo free, fre indicates a free build +@echo. +@echo Remaining parameters ("opt!" = optional parameter): +@echo ^ path to build directory, try . (current directory) +@echo [flags] opt! any flags you think should be passed to build (try /a +@echo for clean) +@echo -WDF opt! performs a WDF build +@echo -PREFAST opt! performs a PREFAST build +@echo. +@echo Special files: +@echo The build target directory (where the DIRS or SOURCES file resides) can +@echo contain the following files: +@echo - %OSR_PREBUILD_SCRIPT% +@echo Allows to include a step before the BUILD tool from the DDK is called +@echo but after the environment for the respective DDK has been set! +@echo - %OSR_POSTBUILD_SCRIPT% +@echo Allows to include a step after the BUILD tool from the DDK is called, +@echo so the environment is still available to the script. +@echo - %OSR_SETENV_SCRIPT% +@echo Allows to set (or override) _any_ environment variables that may exist +@echo in the global environment. Thus you can set the base directory for the +@echo DDK from inside this script, making your project more self-contained. +@echo. +@echo DDKBUILD will only handle those files which exist, so you may choose to +@echo use none, one or multiple of these script files. +@echo (All scripts execute inside their current directory. Consider this!) +@echo. +@echo Examples: +@echo ^"%~n0 -NT4 checked .^" (for NT4 BUILD) +@echo ^"%~n0 -WXP64 chk .^" +@echo ^"%~n0 -WXP chk c:\projects\myproject^" +@echo ^"%~n0 -WNET64 chk .^" (IA64 build) +@echo ^"%~n0 -WNETAMD64 chk .^" (AMD64/EM64T build) +@echo ^"%~n0 -WNETXP chk . -cZ -WDF^" +@echo ^"%~n0 -WNETXP chk . -cZ -PREFAST^" +@echo. +@echo In order for this procedure to work correctly for each platform, it +@echo requires an environment variable to be set up for certain platforms. +@echo There is an auto-detection mechanism in this script, which will work best +@echo if the DDK/WDK was installed using the normal installer (i.e. not just +@echo copied). The auto-detection is based on the DDK/WDK for which you request +@echo a build. Whenever you set the variable explicitly, this will take +@echo precedence over the auto-detected path! +@echo The environment variables are as follows: +@echo. +@echo %%NT4BASE%% - Set this up for ^"-NT4^" builds +@echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds +@echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds +@echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds +@echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds +@echo. +@echo %%WDF_ROOT%% must be set if attempting to do a WDF Build previous to the +@echo Vista WDK (in later DDKs there is no need to set WDF_ROOT). +@echo. +@echo Path to this script: +@echo %~f0 +@echo. +@echo %OSR_VERSTR% +@echo -^> report any problems to ^ or ^ +@echo. + +:END +popd & endlocal & exit /b %OSR_ERRCODE% \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/makefile b/DpcTimer_x64/DpcTimerDrv/makefile new file mode 100644 index 0000000..98801a4 --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/mybuild.bat b/DpcTimer_x64/DpcTimerDrv/mybuild.bat new file mode 100644 index 0000000..ecb14fe --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/mybuild.bat @@ -0,0 +1,3 @@ +set WLHBASE=C:\WINDDK\7600.16385.0 +set WDF_ROOT=C:\WINDDK\7600.16385.0 +ddkbuild.cmd -WLH chk . -cZ -WDF \ No newline at end of file diff --git a/DpcTimer_x64/DpcTimerDrv/readme.txt b/DpcTimer_x64/DpcTimerDrv/readme.txt new file mode 100644 index 0000000..f2b78db --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/readme.txt @@ -0,0 +1,157 @@ +----------------------- +ithurricane [http://hi.baidu.com/ithurricane] +2010/02/04 +----------------------- +support WDK7/VS2008 +fix Privilege Problem +modify register source + +----------------------- +bobo 2009/05/21 +----------------------- +ÐÞ¸´bug: VC6 + DDK2003 -> vc6.dsp --> # PROP Cmd_Line "ddkbuild -WNETWXP free ." + ÐÞ¸Ä: ÔÚddkbuild.cmdÖÐ,¹ØÓÚDDk2003ûÓÐWNETWXP²ÎÊý£¬ÏÖÔÚÔö¼ÓWNETWXP²ÎÊý£¬Ð§¹ûµÈͬÓÚWNETXP + +----------------------- +bobo 2009/05/08 +----------------------- +exe: + 1.TestAppÓÉUnicode¸ÄΪMulti-Byte(ΪÁËÊ¡ÊÂ,×Ö·ûÆ´½Ó,×¢²á±úÒÁд¶¼ÊÇMulti-Byte°æµÄ), + ¼´TestApp.vcprojµÄCharacterSet="1" ¸ÄΪCharacterSet="2" + 2.TestApp¼ÓÔغÍжÔØsys(modify from MyZwDriverControl.c)£¬ òËƽâ¾öÕâ¸öÎÊÌE + a.Æô¶¯app,load driver + b.°ÑappÇ¿ÖƹصE´ËʱûÓÐÕý³£unload driver + c.ÔÙÆô¶¯app,´Ëʱ²»»áÔÙ´Îload driver(»òÕß˵ûÓÐloadʧ°Ü),Ò»ÇÐÕý³£Ê¹ÓÃdriver + d.Õý³£Í˳öapp,unload driver + + ps: MyZwDriverControl ÓEclass LoadNTDriver(copy from 0ginr.com)ÓÐÇø±ð´¦, + MyZwDriverControlÔÚloadºÍunloadÄÚ,¶¼»á×ö×¢²á±úèúØÓ,ɾ³ý¹¤×E + class LoadNTDriverµÄloadÄÚÌúØÓ×¢²á±EunloadÄÚɾ³ý×¢²á±E + MyZwDriverControl¿ÉÒÔLockXxxDatabase. + 3.¼ÓÔغÍжÔØsys¿ÉÒÔÓÃclass LoadNTDriver, ·½·¨¼ELoadNTDriver.h" + +sys: + DriverEntryÀEòÓ¡×¢²á±úÞ·¾¶ + default uIoControlCode Êä³EIoCode + ËùÓк¯ÊýÔö¼Ó·ÖÒ³¡¢·Ç·ÖÒ³ÉùÃE#pragma alloc_text(PAGE, DispatchXX)) + +----------------------- +bobo 2009/04/27 +----------------------- +1.¸÷¸ötarget os»¥³EÖ»ÄÜÑ¡Ò»¸öos +2.¸ù¾ÝDDK°æ±¾£¬ÏÞÖÆOSÑ¡ÔE +3.fix bug : "mybuild.bat" ÄÚµÄ PROJECT_MYBUILD_CMD_LINE ²ÎÊý¸ù¾Ý(DDK + OS)дËÀ£¬ + DDK·¾¶¶¼ÊÇĬÈϵģ¬ÔÙ¸ã¸ö¶ÁдÂé·³¸ö¡£ + + DDK 2000 --- C:\\NTDDK + DDK XP --- C:\\WINDDK\\2600 + DDK 2003 --- C:\\WINDDK\\3790.1830 + WDK 6001.18002 --- C:\\WINDDK\\6001.18002 + +4.Ö§³ÖWDK + win2008 +// todo : 5.Ôö¼Ócheck£¬ freeÑ¡ÔE(mybuild.bat½Å±¾ÀEàÒEÎÊý "chk ." ÓE"fre .") + +6.µÚÒ»´ÎÆô¶¯EasySysʱ£¬»á×Ô¶¯É趨Óû§»·¾³±äÁ¿(WXPBASE,WNETBASE...)£¬ + ÕâÊǸù¾Ý×¢²á±EHKEY_LOCAL_MACHINE -- SOFTWARE\\Microsoft\\WINDDK É趨DDK·¾¶µÄ¡£ + (ÍòÒ»Óû§°²×°Á˶à¸öDDK£¬ÔÙ¼Ó¸öWDK£¬Õâ¸ö·¾¶¾ÍÒªÁúéâÅжÏÁË) + + µ«"mybuild.bat"Ò²»áset»·¾³±äÁ¿£¬ËùÒÔÕâÀEäʵûÓÃÁË¡£ + +7.½Å±¾ÃEûÎÎÊý¾ßÌå¿´ "ddkbuild.cmd":: Usage output + +----------------------- +bobo 2009/04/23 +----------------------- +1.²ÎÕÕMS sample¸ñʽÐÞ¸Ä"sources" + +-----------------------. +bobo 2009/04/18 +----------------------- +1. Ôö¼Ócommon.h, ÓÃÓÚ¶¨Òåexe¡¢sysµÄ¹²Í¨IOCTL +2. Ôö¼Óconsole APP (for VS2005)¹¤³Ì, ÓÃÓÚ²âÊÔsys. ´ÓÄĸöhello world°áÀ´µÄ. + (ÕâÑùÖ»ÒªÅäºÏDriverMonitor¾Í¿ÉÒÔ²âÊÔÇý¶¯ÁË) +// todo : 3. ÔÚdsp_proj.htm(VC6)ÀEö¼Óclean±àÒEÎÊý,ÈÃVC6ʹÓÃclean.bat +// todo : 4. Ôö¼ÓMFC APP¹¤³Ì,ÓÃÓÚ²âÊÔsys +5. ÌúØÓÐÞ¸Ä×¢ÊÍ +6.ÐÞ¸Äprintºê£¬¶ÔÓ¦checkºÍfree°æ±¾µÄbuild + #if DBG + #define dprintf DbgPrint + #else + #define dprintf + #endif + +ԽдԽ¸´ÔÓÁË£¬²»easyÁË..... + +----------------------- +bobo 2009/04/16 +----------------------- +1.OnInitDialog()ÀEö¼ÓOnChangeAuthor() +2.ÐÞ¸ÄOnChangeAuthor()×Ö·û´® +3.ÐÞ¸Ähfile.htm,cfile.htmÀ´ÊÊÓ¦×Ô¼ºÏ°¹ß +----------------------- + +bobo 2009/04/10 +----------------------- +1.GenerateRandomStrings()µÄnew ûÓÐÊÍ·Å£¬ + ¸ÄΪ¾Ö²¿Êý×EÃû×Ö²»Ì«³¤¾ÍÐÐ,64´óС) +2.OnInitDialog()ÀEö¼ÓOnSelectIdeType(),³õʼ»¯IdeType + Ôö¼ÓOnSelchangeDdkVersion(),³õʼ»¯DDK type +3.ddkbuild.cmd ¸EÂΪ VERSION=V7.3 +4.VC6µÄddkbuild.bat¸ÄΪddkbuild.cmd +5.ÐÞ¸ÄOnSelchangeDdkVersion()ÄÚµÄDDK2000µÄÂß¼­ÅÐ¶Ï +6.ÔÚVC6µÄdsp.htmÖÐÔö¼Óstruct.h + +----------------------- +ChiChou [http://hi.baidu.com/517826104] +2009/02/03 +----------------------- + +ChiChou ¸ù¾Ý sudamiÐ޸İEÖÆ×E + +* ÐÞÕýBUG + 1.·Ç³£ÑÏÖصÄBUG¡­¡­³ÌÐòÍ˳öʱûÓÐÒƳýÍÐÅÌͼ±ê£¬ÔÚijЩ»úÆ÷ÉÏÍ˳öʱ +»á±ÀÀ££¨ÖÁÉÙÎҵĵçÄÔÊÇÕâÑE- -!£©¡£ + + 2.Ô­°æ»ñµÃDDK·¾¶Ê±£¬¶ÁÈ¡µÄ×¢²á±úÞ·¾¶Ð´´úÝË£¬µ¼ÖÂÎÞ·¨»ñµÃ DDK µÄ +Path£¨Ã²ËÆ´óÃ×Ö±½ÓÌûåÏ×Ô¼ÒµÄDDK·¾¶ÁËÖ®¡£¡£Î´ÃâÓе㡣¡£¡££©¡£ + + 3.Ô­°æûÓмE鹤³ÌÃû£¬Èç¹ûÀEæ°E¬·Ç·¨×Ö·û£¬ÄÇô´´½¨¹¤³ÌĿ¼µÄʱºE +¾Í»á³ö´ú½£ÐÞÕýʱÔö¼Ó¶Ô·Ç·¨×Ö·ûµÄcheck¹¦ÄÜ¡£°E¨£º/\|"<>*?: + + 4.»¹ÓÐÒ»¸öBUGûÓÐÐÞ¸´¡£Èç¹ûÔÚ¹¤³ÌÃûÖÐÌûäEÎÈç¡°project..¡±µÄÃû³Æʱ£¬ +Ò²»áÒý·¢Îļþ·ÃÎÊ´úêó¡£µ«ÊÇÎÒûÓаE¨ÐÞ¸´¡­¡­Õâ¸ö×Ö·û´®µÄÅжÏÓеãÄѶȡ£¡£ +ˮƽµÍÁÓ¡£¡£(- -...) + +* ÃÀ»¯½çÃE + 1.°Ñ´óÃ×ŪµÄ XPBUTTON ¸øÈ¥µôÁË...ͼ±àÒEٶȡ£ + 2.È»ºóPÁËÕű³¾°Í¼£¬·ÅÔÚÖ÷½çÃ棬»¹ÂùºÃ¿´µÄ~~ + 3.Ï°¹ßÐ﵀ XP Manifest ´¦Àúë¡£ + +* ÐÞ¸ÄÄ£°E + 1.¸ù¾Ý¸öÈËϲºÃ´úÂEĸñʽÐÞ¸ÄÁËÏÂ~ + 2.˳±ã°Ñ¡¶ÌEéÒ¹¶Á¡·ÀEæ¿´µ½µÄij¸ö¶«Î÷£¨ÅжϷûºÅÁ´½ÓÓû§Ïà¹ØÐÔÈ»ºE +´´½¨²»Í¬µÄÉ豸·ûºÅÃû£©¼ÓÁ˽øÈ¥¡­¡­ + +* ÍEƹ¦ÄÜ + 1.sudami°æµÄÓеãÂé·³£¬Í˳ö³ÌÐò»¹ÒªµãÍÐÅÌ¡£Ö±½ÓÔÚÖ÷½çÃæÉèÖÃÁËÍ˳ö°´ +Å¥¡£ + 2.¹¤³Ì´´½¨Ö®ºóEasySYS»ù±¾Ã»Óô¦ÁË£¬±ãÔö¼ÓÁË¡°ÍEɺóÍ˳ö¡±Ñ¡Ïû› + 3.Éú³É¹¤³Ìºó¿ÉÒÔÔ´ÂEÐÌúØÓÈÕÆÚ¡¢×÷ÕßµÈÐÅÏ¢¡£ + 4.Éú³É¹¤³ÌºóµÄ²Ù×÷Ò²ÊÇ¿ÉÑ¡µÄ¡£¿ÉÒÔÑ¡Ôñ×Ô¶¯´ò¿ª¹¤³ÌÎļþ¡¢¹¤³ÌĿ¼¡£ + 5.Ôö¼ÓClean¹¦ÄÜ~~~ +----------------------- + + +----------------------- +sudami [sudami@163.com] +2008/08/13 +----------------------- + + VS 2005ÏÂдÇý¶¯±ÈVC 6.0·½±ãºÜ¶Eµ«ºÃ¶àEasySYS°æ±¾(Include DIY)¶¼Ö» +Ö§³ÖVC 6.0.½ñ¶ùÔçÉÏÔÚVBGOODÂÛ̳¿´µ½IceBoyСͬѧÓÃVBдÁ˸öÖ§³Övs 2005µÄ +demo.ÓÚÊÇ,°³Ò²ÊÔ×Åд¸öÊÊÓÃÓÚ×Ô¼ºµÄ¹¤¾ß,·½±ãÒÔºó¿EٵĿª·¢Çý¶¯³ÌÐE + + ¹þ¹þ,Ö÷ÒªÊÇ·½±ã×Ô¼ºÐ´code,¹ÊÉú³ÉµÄcode·ç¸ñ¶¼ÊÇ°´ÕÕ×Ô¼ºµÄÒâÔ¸À´°²ÅÅ +µÎ... + +----------------------- diff --git a/DpcTimer_x64/DpcTimerDrv/sources b/DpcTimer_x64/DpcTimerDrv/sources new file mode 100644 index 0000000..adcd5b7 --- /dev/null +++ b/DpcTimer_x64/DpcTimerDrv/sources @@ -0,0 +1,9 @@ +TARGETNAME=DpcTimerDrv +#TARGETPATH=$(BASEDIR)\lib +TARGETPATH=obj +TARGETTYPE=DRIVER + +INCLUDES=.\ + +SOURCES=DpcTimerDrv.c + diff --git a/DpcTimer_x64/PCHunter64.PNG b/DpcTimer_x64/PCHunter64.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c7a7838f1a0a67ab5862b85b12a5222942c73394 GIT binary patch literal 115833 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 kw*-k_S3?roTxf zgAd)$&IDwiE?Q6s#`NEDHj4QsCZzmpVdZTcy@Mn15?E`(w9q5}&YLs)?HWKhFJIoI zMB5pJ%YhN(&6oxKI-6Ys%HiSqk4%U^CXdAt@&>+UKergFeGh)xDj)kD30N+oL53`r zCM-=e8Wh-*{Fg)G%Is_YYa*aG^!R7}hXeK_Mx*_H|3dlSU(0Kqis|0|`ZGr>1e8sv zlJftF4qylu{`lsDKrr3B2`oz69a8c)Df*wbkcWCO;Yt%|l>!35Q z{V3tLY*4#NM)iSjfM2WH_OFxb8Q0@HO<|4w2m{mdAo@kc23qf-Z$Q%zq5RLvN2rn| z$0?XJqhIFMGK9~{_X-Hd+kg`z*XkircbG+Tz5gZ(A5kXDQv) zj;`pG>&OGqr%N7oKPj@g2&to}+`=s%n`)g8#w}0&Wo^IX$r>5-{F2XU=>O$=W z#zoyot$^Q1t&IPdc4nNy(!8JSrx3LOYFEvE-J)Vt7yd!+C}b#ilw&Aoh(j^k&t4nT zxO|%NN+y0Vz1(vd+avUGtCxc(Whi?H@<2#Rt(ad@#|l?9ofbLmS`>)#9uojnnrPBI zgKH#J`8^49xh%YtVPIa%3xL4_7z#rv1Wj6KW*cPzz}cUNm!P$<9U05ZJJ>II7yQF* z`{4po$5Qh{kznTYORZ)UoZr1~`>$5y>BF$2NaaCW0OFT?iLZZhPex*WuqN%{c+~Xr zA}zczjS$Pkti7(@t~JfV)W`sU^J9-In3z}gthwR$g1tTE_0{1!%~|LuD&rek zk)d_To0t^UA$L*(aGiBO$_C&v%2it_V?hCpG;<7G5o_1HtJMLfPNS|c!AZv9*^rLI z4DqCI892a>rgh4V9{nO3$1o$gjcAFINgjlu+y>lFu9ya%6BZ!X9oidyxMUMdwdmo5 zvH`SZ$u?HekB@(0^4UFJs@=En`3PDz9}W?K z7!;SR!wF;oJJh*8R9<_%HZw0TgDo^s<=1fxa*1_=GLhH@-hyEiQZ#(9UPxy3^Q9ch zCn~KKDL4nACC+C#`ahR={$Rf}B zYzs-m)g7)4^sH@3Zrx_UDzJUv;~J}}+8&?aYi+rge(;Dk!AxA%$P0GB4&aw$c6g{{ zZfl}JSzq8df^&N3Il{-pzwQ>UdX73tiI8k$(A*c3gisR3)+4hYhN{DMK0oO@wwWW(Sx#n%GoEWVZ%VU{tmO?r2L8;-qEn* zQ7=y$a_bEGAmlf5x1%Og+qvV?9Ipdr1FRwg@|1a=&`=;$nLayDUG#oY%Z(n{ zH>oLOg?W2jd0uYihNCJ4d}vmvXdpeUIfU-!M;xm2x!np42OQ(sC2n@hLtzRGu!k~3 z+?prj)EUFu)RH4-nv#Eyxj$g$+$;|dw(@6krdm}+PGnrALTyhEwj3DySF688-mh

7EV##wgs}t)LlT7=OX@@4!}Rh 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�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�_Pu;%n$_qeQ-?x0|v-d-` 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 literal 0 HcmV?d00001 diff --git a/DpcTimer_x64/bin/DpcTimerDrv.sys b/DpcTimer_x64/bin/DpcTimerDrv.sys new file mode 100644 index 0000000000000000000000000000000000000000..8fde1ca809c917c03ee954b379fdf1c141d07767 GIT binary patch literal 8192 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 W*xwv#i3B==@kxv0>*jwPfqw!+$ES$^ literal 0 HcmV?d00001