主题 : 友善的最新例子   如何 关闭  看门狗? 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 20534
精华: 0
发帖: 52
金钱: 270 两
威望: 54 点
贡献值: 0 点
综合积分: 104 分
注册时间: 2010-05-03
最后登录: 2013-03-22
楼主  发表于: 2011-12-03 17:54

 友善的最新例子   如何 关闭  看门狗?

在最新的例子中  打开 喂狗 都有,但没说怎么关闭 看门狗啊?

bool Open(void) {
        Dev = CreateFile(L"WDT1:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
        return Dev != INVALID_HANDLE_VALUE;
    }
    bool Touch(void) {
        bool ret;
        DWORD retlen;
        if (Dev != INVALID_HANDLE_VALUE) {
            ret = !!WriteFile(Dev, "W", 1, &retlen, 0);
        } else {
            ret = false;
        }
        return ret;
    }
级别: 新手上路
UID: 35803
精华: 0
发帖: 26
金钱: 160 两
威望: 32 点
贡献值: 0 点
综合积分: 52 分
注册时间: 2011-01-07
最后登录: 2013-11-17
1楼  发表于: 2011-12-05 14:31

 Re:友善的最新例子  如何 关闭 看门狗?

【个人做法】
1.若是关闭句柄,可以直接使用CloseFile或CloseHandle函数(具体哪一个函数,你需要查下MSDN)来将之前用CreateFile打开的句柄关闭,但这种方法只能注销创建的句柄。
2.使用WriteFile函数再次给驱动发送IRP包,但是你需要给WriteFile函数的第二个参数写入标号,例如打开WDG,写的是“w”,那么关闭WDG,写的是什么,你要和友善之臂的工程确认了。

还是直接打电话过去吧,论坛发帖,工程师不知道是不是很忙,很少回复的说。