C#唤醒驱动器在32位子系统中

时间:2014-01-20 21:55:03

标签: c# winapi com-interop

我有一个商业应用程序,在64位Windows下作为32位应用程序运行。应用程序的8 GB以上数据库(不是DLL)安装在必须映射到本地驱动器的网络共享上,以使应用程序正常工作。它不使用UNC。当我启动应用程序时,它看不到映射的驱动器,并通过图标显示为脱机并带有红色斜杠。我可以通过在软件中打开文件对话框来手动唤醒映射的驱动器,但这需要6次点击。

在操作系统中,映射的驱动器处于活动状态并立即返回文件列表,因此我猜测在Windows 7中存在完全独立的32位和64位连接/断开驱动器表示。另一个猜测是应用程序是调用错误的API以确定驱动器是否可用。

这使我想要快速编写应用程序来ping 32位子系统中的映射驱动器。我想我会使用一些c#/ interop,这将是一个15分钟的工作。不幸的是,情况并非如此。我的32位C#应用程序使用GetDevicePowerState并报告驱动器已处于活动状态。

如果你以前看过这种行为,会使用什么API来使驱动器变为活动状态?

0 个答案:

没有答案