gpt4 book ai didi

c++ - 我们可以从设备句柄中获取设备对象的详细信息/名称吗

转载 作者:行者123 更新时间:2023-11-30 04:09:12 36 4
gpt4 key购买 nike

我正在编写 DeviceIoControl API Hook 应用程序,它将跟踪目标应用程序发出的所有 DeviceIoControl() 调用。以下是 DeviceIoControl 的签名,方便引用:


BOOL WINAPI DeviceIoControl(
<em>In</em> HANDLE hDevice,
<em>In</em> DWORD dwIoControlCode,
_In_opt_ LPVOID lpInBuffer,
<em>In</em> DWORD nInBufferSize,
_Out_opt_ LPVOID lpOutBuffer,
<em>In</em> DWORD nOutBufferSize,
_Out_opt_ LPDWORD lpBytesReturned,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);

我的问题是,如何确定此 Ioctl 的目标设备是哪个设备,即如何反转 hDevice HANDLE 并找到实际设备。

最佳答案

使用NtQueryObject() 确定句柄所代表的对象的类型和名称。您可能还需要使用 QueryDosDevice() 将硬件设备名称解析为本地文件系统路径。请参阅本文以帮助您入门:

HOWTO:枚举句柄

http://forum.sysinternals.com/howto-enumerate-handles_topic18892.html

一旦知道了设备类型,您就可以然后使用特定于类型的 API,例如 GetVolumeInformationByHandle()GetFileInformationByHandleEx() 等来获取更详细的信息。

关于c++ - 我们可以从设备句柄中获取设备对象的详细信息/名称吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21422754/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com