Windows 当用户创建装入点时,如何获取通知?

Windows 当用户创建装入点时,如何获取通知?,windows,winapi,Windows,Winapi,首先,以下是限制条件: 必须在XP上运行 必须通知驱动器号分配和将卷装入文件夹 如果驱动器处于睡眠状态,则不得“唤醒”驱动器 我真的不想去投票了 我所尝试的: 谷歌 我已经研究了WMI和Win32_LogicalDisk类。我可以确定哪些驱动器装入驱动器盘符,但无法确定哪些驱动器装入文件夹。Win32_Volume*和Win32_MountPoint类将是完美的,但在XP上不可用 我曾尝试使用FindFirstVolume和GetVolumePathNamesForVolumeName轮询驱

首先,以下是限制条件:

  • 必须在XP上运行
  • 必须通知驱动器号分配和将卷装入文件夹
  • 如果驱动器处于睡眠状态,则不得“唤醒”驱动器
  • 我真的不想去投票了
我所尝试的:

  • 谷歌
  • 我已经研究了WMI和Win32_LogicalDisk类。我可以确定哪些驱动器装入驱动器盘符,但无法确定哪些驱动器装入文件夹。Win32_Volume*和Win32_MountPoint类将是完美的,但在XP上不可用
  • 我曾尝试使用FindFirstVolume和GetVolumePathNamesForVolumeName轮询驱动器(尽管我不想这样做),但似乎必须先旋转驱动器,然后才能提供信息。再一次,呃,投票
  • 我正在考虑使用API钩子来钩住对SetVolumeMountPoint和DeleteVolumeMountPoint的调用的可能性,但我认为这不会捕获所有内容,而且看起来这可能是一个丑陋的黑客行为


    所以,是的,我在寻找建议:)

    在SetVolumeMountPoint上挂接API应该可以让您拦截卷装载。不过,我不确定网络共享

    但这不会是一个“丑陋的黑客”。你要做的就是把钩子嵌入Windows的目的。Codeproject.com提供了大量关于API挂钩的教程:

    所以你实际上陈述了你自己的最佳解决方案。请记住,还有一个单独的驱动器号API:

    你的项目听起来很有趣。通常,特洛伊木马程序和反病毒程序会尝试这样做(它们也会捕获网络共享)。我对这个话题只是随便熟悉一下,所以我希望这会有所帮助