diff --git a/ProcessCreateCallBack/ProcessManagerRing0/MonitorWin7.c b/ProcessCreateCallBack/ProcessManagerRing0/MonitorWin7.c deleted file mode 100644 index 2479457..0000000 --- a/ProcessCreateCallBack/ProcessManagerRing0/MonitorWin7.c +++ /dev/null @@ -1,201 +0,0 @@ -#include "MonitorWin7.h" -#include "EnumProcess.h" -extern ERESOURCE Resource; -extern KMUTEX Mutex; -extern PKEVENT EventArray[3]; -extern MSG Msg; -extern BOOLEAN IsClear; - -NTSTATUS EventToKernelEvent(PULONG_PTR InputBuffer,ULONG_PTR InSize) -{ - NTSTATUS Status = STATUS_SUCCESS; - PULONG_PTR HandleArray = NULL; - ULONG i = 0; - HandleArray = (PULONG_PTR)InputBuffer; //这里兼容32Bit 与 64 位 - - for (i=0;iCreationStatus = STATUS_UNSUCCESSFUL; - } - - ReleaseResource(&Resource); - - } - KeReleaseMutex(&Mutex, - FALSE); - } -} - - - - - -//请求一个互斥资源 -FORCEINLINE - VOID - AcquireResourceExclusive(IN OUT PERESOURCE Resource) -{ - ASSERT(KeGetCurrentIrql() <= APC_LEVEL); - ASSERT(ExIsResourceAcquiredExclusiveLite(Resource) || !ExIsResourceAcquiredSharedLite(Resource)); - - KeEnterCriticalRegion(); - (VOID)ExAcquireResourceExclusiveLite(Resource,TRUE); -} - - -//释放互斥资源 -FORCEINLINE - VOID - ReleaseResource(IN OUT PERESOURCE Resource) -{ - ASSERT(KeGetCurrentIrql() <= APC_LEVEL); - ASSERT(ExIsResourceAcquiredExclusiveLite(Resource) || ExIsResourceAcquiredSharedLite(Resource)); - - ExReleaseResourceLite(Resource); - KeLeaveCriticalRegion(); -} - - - -VOID DestroyResource() -{ - - ULONG i = 0; - if (IsClear==FALSE) - { - ExDeleteResourceLite(&Resource); - - - for (i=0;i<3;i++) - { - if (EventArray[i]!=NULL) - { - ObDereferenceObject(EventArray[i]); - - EventArray[i] = NULL; - } - } - -#ifdef _WIN64 - PsSetCreateProcessNotifyRoutineEx(ProcessCallBackWin7,TRUE); -#else - -#endif - - IsClear = TRUE; - } - - - -} - -