Windows驱动必备的API

来源:互联网 发布:成语接龙作弊软件 编辑:程序博客网 时间:2024/05/18 00:24

163博客迁移!

(一)监控注册表信息(CmRegisterCallback()):

typedef struct _CAPTURE_REGISTRY_MANAGER
{
PDEVICE_OBJECT deviceObject;
BOOLEAN bReady;
LARGE_INTEGER registryCallbackCookie;
LIST_ENTRY lQueuedRegistryEvents;
KTIMER connectionCheckerTimer;
KDPC connectionCheckerFunction;
KSPIN_LOCK lQueuedRegistryEventsSpinLock;
ULONG lastContactTime;
} CAPTURE_REGISTRY_MANAGER , *PCAPTURE_REGISTRY_MANAGER;
CAPTURE_REGISTRY_MANAGER g_RegistrContext;
memset(&g_RegistrContext,0,sizeof(g_RegistrContext));
CmRegisterCallback(RegistryCallback, &g_RegistrContext, &g_RegistrContext.registryCallbackCookie); 
NTSTATUS RegistryCallback(IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2); ---这个就是注册表的监控函数了,一旦系统注册表修改,就会进入这个回调, 在这里可以读取任意的注册表的值,然后查看是否有被修改。
(二)进程的监控(PsSetCreateProcessNotifyRoutine()):
PsSetCreateProcessNotifyRoutine(pfpCreateProcessNotify,FALSE);
VOID pfpCreateProcessNotify(
   IN HANDLE  ParentId,
   IN HANDLE  ProcessId,
   IN BOOLEAN  Create
   )
----这个就是进程的监控函数,一旦有出现进程创建,则会进入该函数,可以查看进程是否和文件的进程匹配,子父关系

(三) ResourceFast Mutexes

http://www.cnblogs.com/gussing/archive/2012/12/31/2840602.html   ---<WDK的同步锁机制: Resource与Fast Mutexes>