CreateFile
我有以下代码用于在 32 位 XP 操作系统上创建有效句柄。在 64 位 Vista 和 Windows 7 计算机上测试相同的代码时,CreateFile
返回无效的句柄值。我似乎无法弄清楚发生了什么。
这是dll导入:
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr CreateFile(
string FileName,
uint DesiredAccess,
uint ShareMode,
IntPtr SecurityAttributes,
uint CreationDisposition,
uint FlagsAndAttributes,
IntPtr hTemplateFile
);
和电话:
drive = CreateFile(devicePath,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
IntPtr.Zero,
OPEN_EXISTING,
FILE_FLAG_DELETE_ON_CLOSE,
IntPtr.Zero);
devicePath
是 USB 的有效路径。这在 32 位操作系统上返回一个有效句柄,在 64 位操作系统上返回一个无效值。我找了又找,一无所获。如果有人可以提供帮助或分享一些信息,我将不胜感激。问候。