0

我知道在 Windows 8\server 2012 中有一个名为 FileFsSectorSizeInformation 的新本机 API,可以从任何文件句柄中获取物理扇区大小,即使是在 SMB2 上也没有管理员提升。我正在寻找 .NET 等价物。这是有关本地方式的更多信息。

http://msdn.microsoft.com/en-us/library/windows/desktop/hh848035(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/jj216474.aspx

我正在使用 .NET 4.5

4

1 回答 1

3

不,这不是由 .NET 包装的。它不是一个 api,它是一个驱动程序控制代码。您需要 pinvoke DeviceIoControl() 才能使用它。.NET 通常会避免这些低级驱动程序实现细节,因为它们很难在 Windows 版本之间保持稳定。

请注意这里,一般来说,您打算做的事情没有多大意义。必须调用 FileStream.Flush() 以确保在程序崩溃之前写入日志数据,这样您就可以确保拥有最新的日志。将true传递给过载对性能极为不利,磁盘写入非常慢,只有当您的程序习惯于蓝屏机器时才需要这样做。然后,您也应该对驱动器扇区大小不感兴趣。因为您可以利用这些知识的唯一方法是缓冲日志数据。如果您还使用 Flush(),缓冲是您最不想做的事情。

于 2012-12-29T14:49:33.700 回答