直接上初始化代码,并获取初始化失败原因。
#include "wingIO.h"
#include <qDebug>
#include <string>
#pragma comment(lib, "WinRing0x64.lib")
wingIO::wingIO(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
if (!InitializeOls()) {
DWORD str = GetDllStatus();//获取失败原因代码
std::string cur_str = std::to_string(long long(str));
ui.label->setText(QString::fromStdString(cur_str));//失败原因打印出来
return;
}
BYTE Data = ReadIoPortByte(0xA02);
std::string cur_Data = std::to_string(long long(Data));
//ui.label->setText(QString::fromStdString(cur_Data));
ui.label->setText("888");
}
wingIO::~wingIO()
{
DeinitializeOls();
}
下面是我失败原因图片
没显示888证明初始化失败。失败代码是3,查找winring0文档
3的原因是找不到驱动,问题找到了那就把驱动放到exe那里。
驱动文件sys放进rexe目录下再运行一次发现初始化成功了!
我看见网上对于winring0初始化失败解决方法很少我就发出来给各位有需要的伙伴看看!