注册表
驱动中的注册操作和R3注册表操作还是有一些不同的。
应用程序中需要提供一个跟子健的句柄,而驱动程序中则用全部路径表示。
如下图所示:
应用编程中对应的子健 | 驱动编程中对应路径的写法 |
HKEY_LOCAL_MACHINE | \Registry\Machine |
HKEY_USERS | \Registry\User |
HKEY_CLASSES_ROOT | 没有对应的路径 |
HKEY_CURRENT_USER | 没有对应的路径但是可以求得 |
一、打开注册表 ZwOpenKey
代开注册表使用函数ZwOpenKey,新建或者打开则使用ZwCreateKey,一般在驱动编程中使用ZwOpenKey的情况比较多。找到该函数。
NTSTATUS
NTAPI
ZwOpenKey(
_Out_ PHANDLE KeyHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes
);
PHANDLE:返回打开注册表的句柄
ACCESS_MASK: 一般填写 KEY_READ KEY_WRITE 或者 KEY_ALL_ACCESS 。
二、注册表的读 ZwQueryValueKey</