R0与R3通信方式,ring0与ring3开发区别笔记

R0与R3通信方式

R0与R3通信方式,ring0与ring3开发区别笔记

 

 

ring3与ring0开发区别

printf/scanf/fopen/fclose/fwrite/malloc/free不可用

sprintf/strlen/strcpy/wcslen.../memcpy/memset可用

Ring0成功返回0,失败返回负数,NTSTATUS/NT_SUCCESS()

这些状态码都在ntstatus.h里,将其转化为16进制,然后在这个头文件里查询。

函数调用与中断级别

R0与R3通信方式,ring0与ring3开发区别笔记

R0与R3通信方式,ring0与ring3开发区别笔记

有些函数只能在Passive级别调用,Dispatch就不要使用分页内存,也不要使用Passive的函数。

拿到内核版本通过RTLGetVersion。