我们可以从设备句柄中获取设备对象详细信息 /名称吗?
Can we get the Device object detail / name from a Device handle
我正在编写一个deviceiocontrol api钩应用程序,该应用程序将跟踪所有目标应用程序制作的deviceiocontrol()调用。以下是deviceiocontrol的签名,可轻松参考:
BOOL WINAPI DeviceIoControl(
In HANDLE hDevice,
In DWORD dwIoControlCode,
_In_opt_ LPVOID lpInBuffer,
In DWORD nInBufferSize,
_Out_opt_ LPVOID lpOutBuffer,
In DWORD nOutBufferSize,
_Out_opt_ LPDWORD lpBytesReturned,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
我的问题是,我如何弄清楚该设备的目标是哪个设备,即如何反转HDEVICE手柄并找到实际设备。
使用 NtQueryObject()
确定句柄代表的对象的类型和名称。您可能还需要使用QueryDosDevice()
将硬件设备名称解析为本地文件系统路径。请参阅本文让您开始:
howto:枚举手柄
http://forum.sysinternals.com/howto-enumerate handles_topic18892.html
一旦知道设备类型,就可以然后使用特定于类型的API,例如GetVolumeInformationByHandle()
,GetFileInformationByHandleEx()
等来获取更多详细信息。
- Visual Studio 2017 C++,不能使用 typeid() 获取信息对象,缺少指针?;
- std::extent 实现详细信息说明
- VisualC++ 2010 有没有办法找出有关未处理异常错误的更多详细信息
- 如何使用软化工具包从 OPC UA 服务器异步读取操作回调中的数据值响应中获取 NodeId 详细信息
- protobuf,如何在protobuf消息中遍历所有集合字段,我不知道详细信息?(C++)
- AVX2收集指令使用详细信息
- 只知道运行时的数据类型.如何将数据详细信息隐藏到使用它们的其他类
- CppUnit:如何立即打印故障详细信息
- 我可以为 C++ 类提供不完整的标头以隐藏实现详细信息吗?
- CPP 异常获取抛出调用方的详细信息
- 内存映射 IO 概念详细信息
- 如何在文本文件中搜索员工记录(按名称)并仅显示其详细信息?
- 使用TDD时隐藏文件访问实现详细信息
- 如何在 Windows 上从 C++11 统计信息对象的文件序列号中查找文件名
- 急需有关_doserrno(MSVC)的详细信息
- 主 - Embarcadero C++生成器 10.2 中的详细信息数据集
- 如果构造函数从调用到 std::make_shared 崩溃,GDB 是否可以显示崩溃的详细信息
- 我们可以从设备句柄中获取设备对象详细信息 /名称吗?
- 构造std::thread对象过程中的详细信息
- 在gdb - c++中打印有关文件流对象的详细信息