diff --git a/KiFastCallEntry/HookKiFastCallEntry.h b/KiFastCallEntry/HookKiFastCallEntry.h deleted file mode 100644 index c0a7069..0000000 --- a/KiFastCallEntry/HookKiFastCallEntry.h +++ /dev/null @@ -1,505 +0,0 @@ -#pragma once - -#include "Monitor.h" -#include -typedef unsigned char BYTE, *PBYTE; -#define LOBYTE(w) ((BYTE)(SHORT)(w)) -#define HIBYTE(w) ((BYTE)((SHORT)(w)>>8)) -#define HIWORD(w) ((SHORT)((ULONG)(w))>>16) -#define HIDWORD(w) ((ULONG)(((LONGLONG)(w)>>32)&0xFFFFFFFF)) - - -typedef HANDLE HWND; - - -typedef struct _KSERVICE_TABLE_DESCRIPTOR { - PULONG_PTR Base; - PULONG Count; - ULONG Limit; - PUCHAR Number; -} KSERVICE_TABLE_DESCRIPTOR, *PKSERVICE_TABLE_DESCRIPTOR; - -int (__stdcall *OriZwDisplayStringAddress)(int); - -NTSTATUS _KisInstallKiFastCallEntryHook(); -NTSTATUS _HookZwDisplayString(); -ULONG __stdcall _FakeZwDisplayString(PCUNICODE_STRING StringTest); -ULONG __stdcall _GetKiFastCallEntryRetuanAddress(PVOID VirtualAddress); - - -NTSTATUS __stdcall _KisGetKiFastCallEntryMoveEbxAddress(ULONG StartAddress, ULONG Size, ULONG *MoveEbxAddress); -ULONG __stdcall _KisGetKiFastCallEntryHookAddress(ULONG StartAddress, ULONG Length, ULONG *MmUserProbeAddress1); -NTSTATUS __stdcall _KisHookKiFastCallEntryPoint(ULONG HookAddress); - -VOID _KifakeFastCallEntry(); - -ULONG __stdcall HookKiFastCallEntry(signed __int64 *a1, signed __int64 a2); - -NTSTATUS _KisHookKiFastCallEntry(); -ULONG __stdcall _KisSyscallFilter(ULONG FuncAddress,ULONG edx ,ULONG Index ,ULONG Argc, PVOID SSDTBase); -//VOID __stdcall Filter(ULONG ServiceId, ULONG TableBase, ULONG Argc, ULONG StackAddr) - -VOID SetFakeFunction(); - - -NTSYSAPI - PIMAGE_NT_HEADERS - NTAPI - RtlImageNtHeader(PVOID Base); - -NTSTATUS FuncMonitorDeviceControl(ULONG_PTR uIoControlCode,PVOID InputBuffer,ULONG_PTR uInSize,PVOID OutputBuffer,ULONG_PTR uOutSize); - -PVOID - GetFunctionAddressByNameFromNtosExport(WCHAR *wzFunctionName); -PVOID GetKeShadowServiceDescriptorTable32(); -PVOID GetKeShadowServiceDescriptorTable64(); - -typedef struct _XBoxData_ { - ULONG pid; - ULONG tid; - ULONG sid; - UCHAR argc; - UCHAR bFromUser; - UCHAR bFromSSDT; - ULONG args[16]; - LARGE_INTEGER time; - LIST_ENTRY ListEntry; -} XBoxData, *PXBoxData, **PPXBoxData; - -NTSTATUS FuncEventToKernelEvent(PULONG_PTR InputBuffer,ULONG_PTR InSize); - - -#define SDOW_MAX_NUM 850 -#define SSDT_MAX_NUM 500 -#define FSD_MAX_NUM 56 -#define KBD_MAX_NUM 28 -#define IDT_MAX_NUM 256 -#define MAX_REASON 350 -#define OPCODE_LEN 10 -#define SYSMODULE_MAX 256 - -#define SSDT_MAX_HOOK_INDEX 30 - -enum _SSDT_HOOK_INDEX -{ - SSDT_NTOPENPROCESS_INDEX = 0, - SSDT_NTCREATETHREAD_INDEX = 1, - SSDT_NTOPENTHREAD_INDEX = 2, - SSDT_NTWRITEVIRTUALMEMORY_INDEX = 3, - SSDT_NTDUPLICATEOBJECT_INDEX = 4, - SSDT_NTSETSYSTEMINFORMATION_INDEX = 5, - SSDT_NTQUEUEAPCTHREAD_INDEX = 6 , - SSDT_NTDEBUGACTIVEPROCESS_INDEX = 7, - SSDT_NTREMOVEPROCESSDEBUG_INDEX = 8 - -}SSDT_HOOK_INDEX; - -enum _SHADOW_SSDT_HOOK_INDEX -{ - SHADOWSSDT_NTUSERFINDWINDOWSEX_INDEX = 0, - SHADOWSSDT_NTUSERQUERYWINDOW_INDEX = 1 , - SHADOWSSDT_NTUSERSETWINDOWSHOOKEX_INDEX = 2, - SHADOWSSDT_NTUSERBUILDHWNDLIST_INDEX = 3, - SHADOWSSDT_NTUSERWINDOWFROMPOINT_INDEX = 4, - SHADOWSSDT_NTUSERSETPARENT_INDEX = 5, - SHADOWSSDT_NTUSERPOSTMESSAGE_INDEX = 6, - SHADOWSSDT_NTUSERMESSAGECALL_INDEX = 7, - SHADOWSSDT_NTUSERDESTROYWINDOW_INDEX = 8, - SHADOWSSDT_NTUSERSHOWWINDOW_INDEX = 9, - SHADOWSSDT_NTUSERSETWINDOWLONG_INDEX = 10 , - SHADOWSSDT_NTUSERINTERNALGETWINDOWTEXT_INDEX = 11, - SHADOWSSDT_NTUSERSETWINDOWPOS_INDEX = 12 , - SHADOWSSDT_NTUSERGETCLASSNAME_INDEX = 13 , - SHADOWSSDT_NTUSERGETWINDOWPLACEMENT_INDEX = 14, - SHADOWSSDT_NTUSERGETFOREGROUNDWINDOW_INDEX = 15 - -}SHADOW_SSDT_HOOK_INDEX; - -#define SSDT_FILTER_NUM 500 -#define SHADOWSSDT_FILTER_NUM 850 - -#define SECTIONOBJECT 0x138 //_EPROCESSÖÐSectionObjectµÄoffset -#define SEGMENT 0x014 //_SECTION_OBJECTÖÐSegmentµÄ// -#define CONTROLAREA 0x000 //_SEGMENTÖÐControlAreaµÄoffset -#define FILEPOINTER 0x024 //_CONTROL_AREAÖÐFilePointerµÄoffset - - - -//TEB³õʼ»¯ -typedef struct _INITIAL_TEB { - struct { - PVOID OldStackBase; - PVOID OldStackLimit; - } OldInitialTeb; - PVOID StackBase; - PVOID StackLimit; - PVOID StackAllocationBase; -} INITIAL_TEB, *PINITIAL_TEB; - - - -typedef struct _SYSCALL_FILTER_INFO_TABLE -{ - ULONG ulKiFastCallEntry; - ULONG ulNewRetKiFastCallEntry; - - UCHAR HookCode[13]; - ULONG ulCopyLength; - - ULONG ulSSDTAddr; - ULONG ulSHADOWSSDTAddr; - - ULONG ulSSDTNum; - ULONG ulSHADOWSSDTNum; - - ULONG FastCallType; - - ULONG SavedSSDTTable[SSDT_FILTER_NUM]; //SSDTԭʼº¯ÊýµØÖ·±í - ULONG ProxySSDTTable[SSDT_FILTER_NUM]; //SSDT´úÀíº¯ÊýµØÖ·±í - ULONG SSDTServiceIndex[SSDT_MAX_HOOK_INDEX]; - ULONG SSDTSwitchTable[SSDT_FILTER_NUM]; //SSDT Hook¿ª¹Ø±í - - ULONG SavedShadowSSDTTable[SHADOWSSDT_FILTER_NUM]; //ShadowSSDTԭʼº¯ÊýµØÖ·±í - ULONG ProxyShadowSSDTTable[SHADOWSSDT_FILTER_NUM]; //ShadowSSDT´úÀíº¯ÊýµØÖ·±í - ULONG ShadowSSDTServiceIndex[SSDT_MAX_HOOK_INDEX]; - ULONG ShadowSSDTSwitchTable[SHADOWSSDT_FILTER_NUM]; //ShadowSSDT Hook¿ª¹Ø±í - - - ULONG ulEPROCESSPidOffset; - -}SYSCALL_FILTER_INFO_TABLE,*PSYSCALL_FILTER_INFO_TABLE; - - -typedef BOOL (*NTUSERPOSTTHREADMESSAGE) - ( - DWORD idThread, - UINT Msg, - WPARAM wParam, - LPARAM lParam - ); - - - -typedef NTSTATUS (*NTDUPLICATEOBJECT) - ( - IN HANDLE SourceProcessHandle, - IN HANDLE SourceHandle, - IN HANDLE TargetProcessHandle, - OUT PHANDLE TargetHandle OPTIONAL, - IN ACCESS_MASK DesiredAccess, - IN ULONG Attributes, - IN ULONG Options - ); - -typedef NTSTATUS (*NTCREATEDEBUGOBJECT) - ( - OUT PHANDLE DebugObjectHandle, - IN ACCESS_MASK DesiredAccess, - IN POBJECT_ATTRIBUTES ObjectAttributes, - IN ULONG Flags - ); - -typedef NTSTATUS (*NTQUEUEAPCTHREAD) - ( - IN HANDLE ThreadHandle, - IN PKNORMAL_ROUTINE ApcRoutine, - IN PVOID ApcContext OPTIONAL, - IN PVOID Argument1 OPTIONAL, - IN PVOID Argument2 OPTIONAL - ); - -typedef NTSTATUS (*NTSETTHREADCONTEXT) - ( - IN HANDLE hThread, - IN PCONTEXT pContext - ); - - - -typedef NTSTATUS (*HOOKPROC)(int code, WPARAM wParam, LPARAM lParam); - - -typedef NTSTATUS (*NTSETSYSTEMINFORMATION)( - __in SYSTEM_INFORMATION_CLASS SystemInformationClass, - __inout PVOID SystemInformation, - __in ULONG SystemInformationLength); - - -NTSTATUS FakeNtSetSystemInformation( - __in SYSTEM_INFORMATION_CLASS SystemInformationClass, - __inout PVOID SystemInformation, - __in ULONG SystemInformationLength); - -typedef NTSTATUS (*NTOPENPROCESS) ( - __out PHANDLE ProcessHandle, - __in ACCESS_MASK DesiredAccess, - __in POBJECT_ATTRIBUTES ObjectAttributes, - __in_opt PCLIENT_ID ClientId); - - -NTSTATUS FakeNtOpenProcess ( - __out PHANDLE ProcessHandle, - __in ACCESS_MASK DesiredAccess, - __in POBJECT_ATTRIBUTES ObjectAttributes, - __in_opt PCLIENT_ID ClientId - ); - - -NTSTATUS FakeNtCreateThread( - __out PHANDLE ThreadHandle, - __in ACCESS_MASK DesiredAccess, - __in_opt POBJECT_ATTRIBUTES ObjectAttributes, - __in HANDLE ProcessHandle, - __out PCLIENT_ID ClientId, - __in PCONTEXT ThreadContext, - __in PINITIAL_TEB InitialTeb, - __in BOOLEAN CreateSuspended - ); - -typedef NTSTATUS (*NTCREATETHREAD)( - __out PHANDLE ThreadHandle, - __in ACCESS_MASK DesiredAccess, - __in_opt POBJECT_ATTRIBUTES ObjectAttributes, - __in HANDLE ProcessHandle, - __out PCLIENT_ID ClientId, - __in PCONTEXT ThreadContext, - __in PINITIAL_TEB InitialTeb, - __in BOOLEAN CreateSuspended); - -typedef NTSTATUS (*NTOPENTHREAD) ( - __out PHANDLE ThreadHandle, - __in ACCESS_MASK DesiredAccess, - __in POBJECT_ATTRIBUTES ObjectAttributes, - __in_opt PCLIENT_ID ClientId); - -NTSTATUS FakeNtOpenThread ( - __out PHANDLE ThreadHandle, - __in ACCESS_MASK DesiredAccess, - __in POBJECT_ATTRIBUTES ObjectAttributes, - __in_opt PCLIENT_ID ClientId - ); - - -typedef NTSTATUS (*NTWRITEVIRTUALMEMORY)( - __in HANDLE ProcessHandle, - __in_opt PVOID BaseAddress, - __in_bcount(BufferSize) CONST VOID *Buffer, - __in SIZE_T BufferSize, - __out_opt PSIZE_T NumberOfBytesWritten); - -NTSTATUS FakeNtWriteVirtualMemory( - __in HANDLE ProcessHandle, - __in_opt PVOID BaseAddress, - __in_bcount(BufferSize) CONST VOID *Buffer, - __in SIZE_T BufferSize, - __out_opt PSIZE_T NumberOfBytesWritten - ); - - -typedef NTSTATUS (*NTDUPLICATEOBJECT)( - __in HANDLE SourceProcessHandle, - __in HANDLE SourceHandle, - __in_opt HANDLE TargetProcessHandle, - __out_opt PHANDLE TargetHandle, - __in ACCESS_MASK DesiredAccess, - __in ULONG HandleAttributes, - __in ULONG Options); - -NTSTATUS FakeNtDuplicateObject ( - __in HANDLE SourceProcessHandle, - __in HANDLE SourceHandle, - __in_opt HANDLE TargetProcessHandle, - __out_opt PHANDLE TargetHandle, - __in ACCESS_MASK DesiredAccess, - __in ULONG HandleAttributes, - __in ULONG Options); - -typedef NTSTATUS (*NTDEBUGACTIVEPROCESS) ( IN HANDLE ProcessHandle, - IN HANDLE DebugObjectHandle - ); - -NTSTATUS FakeNtDebugActiveProcess (IN HANDLE ProcessHandle, - IN HANDLE DebugObjectHandle - ); - -typedef NTSTATUS (*NTREMOVEPROCESSDEBUG) ( IN HANDLE ProcessHandle, - IN HANDLE DebugObjectHandle - ); - -NTSTATUS FakeNtRemoveProcessDebug ( IN HANDLE ProcessHandle, - IN HANDLE DebugObjectHandle - ) ; - -/************************´°¿Ú¹ýÂËÏà¹Øº¯Êý********************************/ - -typedef HWND (*NTUSERFINDWINDOWEX)( - __in HWND hwndParent, - __in HWND hwndChild, - __in PUNICODE_STRING pstrClassName OPTIONAL, - __in PUNICODE_STRING pstrWindowName OPTIONAL, - __in DWORD dwType); - -HWND FakeNtUserFindWindowEx( - __in HWND hwndParent, - __in HWND hwndChild, - __in PUNICODE_STRING pstrClassName OPTIONAL, - __in PUNICODE_STRING pstrWindowName OPTIONAL, - __in DWORD dwType); - - -typedef UINT_PTR (*NTUSERQUERYWINDOW)( - IN ULONG WindowHandle, - IN ULONG TypeInformation); - -UINT_PTR FakeNtUserQueryWindow( - IN ULONG WindowHandle, - IN ULONG TypeInformation); - - - -typedef - NTSTATUS (*NtQUEUEAPCTHREAD)( - IN HANDLE ThreadHandle, - IN PKNORMAL_ROUTINE ApcRoutine, - IN PVOID ApcContext OPTIONAL, - IN PVOID Argument1 OPTIONAL, - IN PVOID Argument2 OPTIONAL - ); - -NTSTATUS - NTAPI FakeNtQueueApcThread( - IN HANDLE ThreadHandle, - IN PKNORMAL_ROUTINE ApcRoutine, - IN PVOID ApcContext OPTIONAL, - IN PVOID Argument1 OPTIONAL, - IN PVOID Argument2 OPTIONAL - ); - - -typedef HANDLE (*NTUSERSETWINDOWSHOOKEX)(IN HANDLE Mod, - IN PUNICODE_STRING UnsafeModuleName, - IN DWORD ThreadId, - IN INT HookId, - IN HOOKPROC HookProc, - IN BOOL Ansi); - - -HANDLE FakeNtUserSetWindowsHookEx(HANDLE Mod, - PUNICODE_STRING UnsafeModuleName, - DWORD ThreadId, - INT HookId, - HOOKPROC HookProc, - BOOL Ansi); - - -typedef NTSTATUS (*NTUSERBUILDHWNDLIST)( - IN HDESK hdesk, - IN HWND hwndNext, - IN ULONG fEnumChildren, - IN DWORD idThread, - IN UINT cHwndMax, - OUT HWND *phwndFirst, - OUT ULONG* pcHwndNeeded); - - - -NTSTATUS FakeNtUserBuildHwndList( - IN HDESK hdesk, - IN HWND hwndNext, - IN ULONG fEnumChildren, - IN DWORD idThread, - IN UINT cHwndMax, - OUT HWND *phwndFirst, - OUT ULONG* pcHwndNeeded); - -typedef ULONG (*NTUSERWINDOWFROMPOINT)(LONG x, LONG y); - -ULONG FakeNtUserWindowFromPoint(LONG x, LONG y); - -typedef HWND (*NTUSERSETPARENT)(HWND hWndChild,HWND hWndNewParent); - -HWND FakeNtUserSetParent(HWND hWndChild,HWND hWndNewParent); - -typedef BOOL (*NTUSERPOSTMESSAGE)(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam); - - -BOOL FakeNtUserPostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam); - -typedef ULONG (*NTUSERMESSAGECALL)( - HWND hwnd, - UINT msg, - WPARAM wParam, - LPARAM lParam, - PULONG xParam, - ULONG xpfnProc, - BOOL bAnsi - ); - -ULONG FakeNtUserMessageCall( - HWND hwnd, - UINT msg, - WPARAM wParam, - LPARAM lParam, - PULONG xParam, - ULONG xpfnProc, - BOOL bAnsi - ); - -typedef BOOL (*NTUSERDESTROYWINDOW)(HWND hWnd); - -BOOL FakeNtUserDestroyWindow( HWND hWnd ); - -typedef BOOL (*NTUSERSHOWWINDOW)(HWND hWnd,long nCmdShow); - -BOOL FakeNtUserShowWindow(HWND hWnd,long nCmdShow); - -typedef long (*NTUSERSETWINDOWLONG)(HWND hWnd, ULONG Index, long NewValue, BOOL Ansi); - -long FakeNtUserSetWindowLong(HWND hWnd, ULONG Index, long NewValue, BOOL Ansi); - -typedef INT (*NTUSERINTERNALGETWINDOWTEXT)(HWND hWnd, LPWSTR lpString, INT nMaxCount); - -INT CALLBACK FakeNtUserInternalGetWindowText(HWND hWnd, LPWSTR lpString, INT nMaxCount); - - -typedef BOOL (*NTUSERSETWINDOWPOS)( - HWND hWnd, - HWND hWndInsertAfter, - int X, - int Y, - int cx, - int cy, - UINT uFlags); - -BOOL CALLBACK - FakeNtUserSetWindowPos( - HWND hWnd, - HWND hWndInsertAfter, - int X, - int Y, - int cx, - int cy, - UINT uFlags); - -typedef (*NTUSERGETCLASSNAME)(IN HWND hWnd, - OUT PUNICODE_STRING ClassName, - IN BOOL Ansi); - -INT CALLBACK - FakeNtUserGetClassName (IN HWND hWnd, - OUT PUNICODE_STRING ClassName, - IN BOOL Ansi); - -typedef BOOL (*NTUSERGETWINDOWPLACEMENT)(HWND hWnd, - void* lpwndpl); - - -BOOL CALLBACK - FakeNtUserGetWindowPlacement(HWND hWnd, - void* lpwndpl); - -typedef ULONG (*NTUSERGETFOREGROUNDWINDOW)(VOID); - - -ULONG FakeNtUserGetForegroundWindow(VOID); -/*****************************************************************************************************/ diff --git a/KiFastCallEntry/Monitor.h b/KiFastCallEntry/Monitor.h deleted file mode 100644 index 6713965..0000000 --- a/KiFastCallEntry/Monitor.h +++ /dev/null @@ -1,64 +0,0 @@ -/*************************************************************************************** -* AUTHOR : MZ -* DATE : 2016-2-12 -* MODULE : Monitor.H -* -* IOCTRL Sample Driver -* -* Description: -* Demonstrates communications between USER and KERNEL. -* -**************************************************************************************** -* Copyright (C) 2010 MZ. -****************************************************************************************/ - -#ifndef CXX_MONITOR_H -#define CXX_MONITOR_H - -#include -#include -#include "Common.h" - - -#define DEVICE_NAME L"\\Device\\MonitorDeviceName" -#define LINK_NAME L"\\DosDevices\\MonitorLinkName" - -NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING pRegistryString); -VOID DriverUnload(IN PDRIVER_OBJECT DriverObject); -NTSTATUS DispatchDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP pIrp); -NTSTATUS - DefaultPassThrough(PDEVICE_OBJECT DeviceObject,PIRP Irp); - - -VOID GetFirstModuleInformation(PDRIVER_OBJECT DriverObject); -typedef struct _LDR_DATA_TABLE_ENTRY -{ - LIST_ENTRY InLoadOrderLinks; - LIST_ENTRY InMemoryOrderLinks; - LIST_ENTRY InInitializationOrderLinks; - PVOID DllBase; - PVOID EntryPoint; - ULONG SizeOfImage; - UNICODE_STRING FullDllName; - UNICODE_STRING BaseDllName; - ULONG Flags; - USHORT LoadCount; - USHORT TlsIndex; - union - { - LIST_ENTRY HashLinks; - struct - { - PVOID SectionPointer; - ULONG CheckSum; - }; - }; - union - { - ULONG TimeDateStamp; - PVOID LoadedImports; - }; - PVOID EntryPointActivationContext; - PVOID PatchInformation; -} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; -#endif diff --git a/KiFastCallEntry/Monitor.sln b/KiFastCallEntry/Monitor.sln deleted file mode 100644 index ce1a438..0000000 --- a/KiFastCallEntry/Monitor.sln +++ /dev/null @@ -1,16 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Monitor", "Monitor.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/KiFastCallEntry/Monitor.suo b/KiFastCallEntry/Monitor.suo deleted file mode 100644 index 740f2d6..0000000 Binary files a/KiFastCallEntry/Monitor.suo and /dev/null differ diff --git a/KiFastCallEntry/Monitor.vcxproj.filters b/KiFastCallEntry/Monitor.vcxproj.filters deleted file mode 100644 index 85327e1..0000000 --- a/KiFastCallEntry/Monitor.vcxproj.filters +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - 公共 - - - KiFastCallEntry - - - 监控进程 - - - - - {34b07019-c15d-4da9-9329-db715de7b412} - - - {aebc1b79-2de6-4b1a-a158-4cf360c32b96} - - - {eaf33335-dc2f-4d24-b0e6-0021734f6aab} - - - - - 公共 - - - KiFastCallEntry - - - 监控进程 - - - - - - \ No newline at end of file diff --git a/KiFastCallEntry/Monitor.vcxproj.user b/KiFastCallEntry/Monitor.vcxproj.user deleted file mode 100644 index 695b5c7..0000000 --- a/KiFastCallEntry/Monitor.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/KiFastCallEntry/ReadMe.txt b/KiFastCallEntry/ReadMe.txt deleted file mode 100644 index e7c3375..0000000 --- a/KiFastCallEntry/ReadMe.txt +++ /dev/null @@ -1,3 +0,0 @@ -Hook KiFastCallEntry to monitor ssdt&sssdt function - -delete. diff --git a/KiFastCallEntry/clean.bat b/KiFastCallEntry/clean.bat deleted file mode 100644 index 29bc412..0000000 --- a/KiFastCallEntry/clean.bat +++ /dev/null @@ -1,28 +0,0 @@ -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/KiFastCallEntry/ddkbuild.cmd b/KiFastCallEntry/ddkbuild.cmd deleted file mode 100644 index d02fa61..0000000 --- a/KiFastCallEntry/ddkbuild.cmd +++ /dev/null @@ -1,1122 +0,0 @@ -@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/KiFastCallEntry/fff b/KiFastCallEntry/fff deleted file mode 100644 index b5ca4b2..0000000 --- a/KiFastCallEntry/fff +++ /dev/null @@ -1 +0,0 @@ -sssasa diff --git a/KiFastCallEntry/makefile b/KiFastCallEntry/makefile deleted file mode 100644 index afdab6e..0000000 --- a/KiFastCallEntry/makefile +++ /dev/null @@ -1,6 +0,0 @@ -# -# 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/KiFastCallEntry/mybuild.bat b/KiFastCallEntry/mybuild.bat deleted file mode 100644 index 5f3058b..0000000 --- a/KiFastCallEntry/mybuild.bat +++ /dev/null @@ -1,3 +0,0 @@ -set WLHBASE=C:\WINDDK\6001.18002 -set WDF_ROOT=C:\WINDDK\6001.18002 -ddkbuild.cmd -WLHXP chk . -cZ -WDF \ No newline at end of file diff --git a/KiFastCallEntry/sources b/KiFastCallEntry/sources deleted file mode 100644 index 3c0d76a..0000000 --- a/KiFastCallEntry/sources +++ /dev/null @@ -1,12 +0,0 @@ -TARGETNAME=Monitor -#TARGETPATH=$(BASEDIR)\lib -TARGETPATH=obj -TARGETTYPE=DRIVER -LINKER_FLAGS=/integritycheck -INCLUDES=.\ - -SOURCES= \ - Monitor.c \ - Common.c \ - HookKiFastCallEntry.c -