我打电话给SetupCopyOEMInf是为了复制设备驱动程序的.inf文件( MSFT说:'SetupAPI继续用于安装设备驱动程序。
调用正在返回false,因此我将按docs的说法调用GetLastError (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM)。这里返回的值是十进制中的E000024B或3758096971。但是,当我使用来自FormatMessage的返回值调用按规定时,lpBuffer为NULL。
此外,还试图找出SetupCopyOEMInf失败的原因(它似乎适用于某些.inf文件,但对其他文件却不起作用)。这是Windows8.1
Puzzling...Any的想法在那里?
谢谢!
代码:
BOOL result = SetupCopyOEMInf(_T("C:\\Users\\edward\\Desktop\\_Test\\cncport.inf"), NULL, SPOST_PATH, 0, NULL, 0, NULL, NULL);
//result is FALSE
LPVOID lpBuffer;
DWORD dw = GetLastError();
DWORD dwMsg = FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpBuffer,
2048, NULL);发布于 2014-01-02 20:47:54
不支持所有错误代码。。您找到的是ERROR_FILE_HASH_NOT_IN_CATALOG,它不包括在FORMAT_MESSAGE_FROM_SYSTEM中。在系统消息资源中,setupapi.h错误似乎没有它们的任何预定义文本。您必须自己编写错误字符串。
发布于 2014-03-25 18:14:35
尽管这篇文章是在一段时间前创建的,但实际上您可以通过使用HRESULT_FROM_SETUPAPI宏(如微软在这里发布的http://msdn.microsoft.com/en-us/library/windows/hardware/ff545011%28v=vs.85%29.aspx)获取文本。这将将返回的错误代码映射到可以在FormatMessage函数中使用的错误代码。
https://stackoverflow.com/questions/20890605
复制相似问题