2

我有一个正在尝试使用的功能。我的意图是能够获得一个文件句柄 (IntPtr) 对象,以便我可以针对它调用“Win32.DeviceIoControl”。它在 Windows 7 中工作得很好,但是当我在 Windows 8 上测试时,我得到一个从对象变量返回的 -1。

也许在 Windows 8 中有不同的方法可以做到这一点?或者一个更好的方法来做这件事。

这是代码:

    public bool OpenHandle()
    {
        string filename = "\\\\.\\D:";

        hFile = Win32.CreateFile(filename, Win32.GENERIC_READ | Win32.GENERIC_WRITE,
            Win32.FILE_SHARE_READ | Win32.FILE_SHARE_WRITE, IntPtr.Zero, Win32.OPEN_EXISTING, 0, IntPtr.Zero);

        if (hFile.ToInt32() == Win32.INVALID_HANDLE)
        {
            return false;
        }
        return true;
    }

此代码取自https://stackoverflow.com/a/9579881/1607306,我只是想利用它。同样,在 Win7 中工作,而不是 Win8。

谢谢!

4

0 回答 0