C++ 为驱动程序创建句柄时功能不正确

C++ 为驱动程序创建句柄时功能不正确,c++,driver,C++,Driver,由于某些原因,当我尝试为驱动程序创建句柄时,我得到的函数不正确。(即错误消息1)。这是否意味着我使用了错误的函数来创建句柄?我做错了什么 std::string GetLastErrorAsString() { //Get the error message, if any. DWORD errorMessageID = ::GetLastError(); if(errorMessageID == 0) return std::string(); //No

由于某些原因,当我尝试为驱动程序创建句柄时,我得到的
函数不正确。
(即错误消息1)。这是否意味着我使用了错误的函数来创建句柄?我做错了什么

std::string GetLastErrorAsString()
{
    //Get the error message, if any.
    DWORD errorMessageID = ::GetLastError();
    if(errorMessageID == 0)
        return std::string(); //No error message has been recorded

    LPSTR messageBuffer = nullptr;
    size_t size = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                                 NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL);

    std::string message(messageBuffer, size);

    //Free the buffer.
    LocalFree(messageBuffer);

    return message;
}


int main()
{
    HANDLE hDriver = CreateFileA("\\\\.\\myDevice", GENERIC_READ | GENERIC_WRITE,
                                  FILE_SHARE_READ | FILE_SHARE_WRITE,
                                  0, OPEN_EXISTING, 0, 0);
    cout << GetLastErrorAsString() << endl;  //"Wrong function"
                                             //hDriver == INVALID_HANDLE_VALUE
    CloseHandle(hDriver);
    return 0;
}
std::string GetLastErrorAsString()
{
//获取错误消息(如果有)。
DWORD errorMessageID=::GetLastError();
如果(errorMessageID==0)
return std::string();//未记录任何错误消息
LPSTR messageBuffer=nullptr;
size_t size=FormatMessageA(格式化_消息_分配|格式化_消息|来自|系统|格式化_消息_忽略|插入,
NULL,errorMessageID,MAKELANGID(LANG_中立,SUBLANG_默认),(LPSTR)和messageBuffer,0,NULL);
std::字符串消息(messageBuffer,size);
//释放缓冲区。
LocalFree(messageBuffer);
返回消息;
}
int main()
{
HANDLE hDriver=CreateFileA(“\\\.\\myDevice”),GENERIC_READ | GENERIC_WRITE,
文件共享读取文件共享写入,
0,打开现有的,0,0);

cout
GetLastErrorAsString()
不是WIN32的一部分。也许你也应该将代码发布到它。很抱歉,我在中编辑了它,它是GetLastError()的字符串描述。这是你正在开发的驱动程序,还是在其他方面“没有完全烘焙”?当然,不正确的驱动程序代码会导致各种各样的问题(:是的,但我想我至少可以创建一个句柄。驱动程序也已安装/加载。我对驱动程序开发不太了解,但我确实在web上看到了由于驱动程序设置不正确而导致此错误的示例。例如:不确定您的具体情况可能是什么。