jjzjj

setupapi

全部标签

windows - 获取磁盘设备的物理设备对象名称

我需要从Windows上的用户模式应用程序检索磁盘设备的“物理设备对象名称”,如设备管理器中所示。我现在有一个解决方案,它涉及一个通过IOCTL加载和询问的内核驱动程序。一旦进入内核领域,我就可以毫不费力地找到那个名字。如果可能,我想避免使用内核模块。有什么想法吗? 最佳答案 您可以使用设置API函数获取它。具体来说,我相信您可以通过SetupDiGetDeviceRegistryProperty和SPDRP_PHYSICAL_DEVICE_OBJECT_NAME获得它。 关于windo

windows - SetupUninstallOEMInf 何时会返回 ERROR_NO_MORE_ITEMS?

SetupAPI的SetupUninstallOEMInf函数在什么情况下会设置ERROR_NO_MORE_ITEMS错误码?MSDN文档没有对此进行详细说明。 最佳答案 显然,ERROR_NO_MORE_ITEMS错误代码表明仍有安装的设备使用此.INF文件(并且未指定SUOI_FORCEDELETE标志)。阅读%windir%\setupapi.log(在XP上)或%windir%\Inf\setupapi.dev.log(在Vista和更高版本上)会有所帮助以确定SetupAPI真正想说的是什么。

windows - SetupAPI(setupdi 函数)不链接

我想要一个函数来枚举Windows上的串行(COM)端口。为此,我主要从http://www.codeguru.com/cpp/w-p/system/hardwareinformation/article.php/c5721/Determining-What-Serial-Ports-Are-Available-on-a-Windows-Machine.htm复制了代码。在头文件中:#include"SerialPort.h"#include#include#include#includetypedefstd::listPortList;classSerialConnection{pr

windows - 如何在 Delphi(或通过 Windows API)的 RDP session 中唯一标识由 EasyPrint 打印机重定向的打印机?

我喜欢在Delphi的RDPsession中唯一标识由EasyPrint打印机重定向的打印机。每次用户连接到RDPsession时,打印机的名称都会更改,例如:“HPLJP1606(重定向6)”。最后一个数字(6)始终在变化,以确保打印机名称在整个服务器中是唯一的。在我的程序中,我喜欢保存一些与打印机型号相关的打印机相关参数。我期待找到类似GUID的东西来识别某个地方的打印机,有点像MAC地址。它应该允许我的程序确保它与之前选择的打印机相同。我和我的同事研究了这个解决方案:HowcanIuniquelyidentifyaprintqueueonWindowsevenifthequeue

c++ - 是否可以使用 SetupAPI 检索 .inf 文件中一行的键?

我正在使用SetupAPI中的函数SetupGetLineText(http://msdn.microsoft.com/en-us/library/aa377388(v=VS.85).aspx)从inf文件的一个部分中读取一行。行的格式是:key=valueSetupGetLineText似乎返回值部分。这很好,但我也想知道我正在阅读的当前上下文的关键是什么。SetupAPI中似乎没有用于读取key的函数。如能提供有关如何检索key的任何帮助,我们将不胜感激。 最佳答案 这是我用来使用SetupAPI处理inf文件的类。#ifnde

c - SetupDiGetDeviceRegistryProperty : "The data area passed to a system call is too small" error

我有一个使用SetupAPI在WindowsXP上枚举USB设备的代码:HDEVINFOhDevInfo=SetupDiGetClassDevs(&_DEVINTERFACE_USB_DEVICE,0,0,DIGCF_DEVICEINTERFACE|DIGCF_PRESENT);for(DWORDi=0;;++i){SP_DEVINFO_DATAdevInfo;devInfo.cbSize=sizeof(SP_DEVINFO_DATA);BOOLsucc=SetupDiEnumDeviceInfo(hDevInfo,i,&devInfo);if(GetLastError()==ERRO

Windows下获取设备管理器列表信息-setupAPI

背景及问题:在与硬件打交道时,经常需要知道当前设备连接的硬件信息,以便连接正确的硬件,比如串口通讯查询连接的硬件及端口,一般手工的方式就是去设备管理器查看相应的信息,应用程序如何读取这一部分信息呢,Windows下的SetupAPI系列就可以解决这个问题示例程序#include#include#include#include#pragmacomment(lib,"setupapi.lib")intmain(){ //setchinesecharacter std::locale::global(std::locale("")); //TheSetupDiGetClassDevsfunction

windows - 更正 Windows API 以查找 CurrentControlSet\Control\MediaProperties?

我希望支持自定义操纵杆设备,但由于项目要求,我不能再使用DirectInputAPI。我已经切换到使用“经典”Windows多媒体API(例如joyGetDevCaps和系列),但只有一个异常(exception)。DirectInputDeviceInstance有两个字段,InstanceName和ProductName,它们返回设备的正确“自定义”名称。相应的joyGetDevCaps产品名称字段szPname返回一个通用的“MicrosoftPC游戏杆驱动程序”。在安装了设备的系统上搜索注册表时,我发现该节点中有一个REG_SZOEMName条目,其中包含我想要的字符串:HKE

c++ - 什么是 SetupAPI、SetupAPI1 和 SetupAPI2?它们之间有什么区别?

最近,我需要用C++在MFC中实现一个小功能,用于获取可用串口列表。然后我看到this.我需要知道什么是SetupAPI1和SetupAPI2?当我想用这种方式实现我的功能时,在哪里可以得到setup.dll?。在搜索互联网时,我发现有一个SetupAPI但它似乎是另一个。现在,我真的对这些SetupAPI、SetupAPI1和SetupAPI2感到困惑。有什么区别?他们来自哪里?而且,如果我想使用它们,我怎样才能得到它们? 最佳答案 没有像SetupAPI1和SetupAPI2这样的想法。有一个名为SetupAPI的库。您链接到的