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

.NET4.5を使用しています

4

1 に答える 1

3

いいえ、それは.NETでラップされていません。これはAPIではなく、ドライバー制御コードです。これを使用するには、DeviceIoControl()をピンボークする必要があります。.NETは一般に、これらの低レベルのドライバー実装の詳細を回避し、Windowsバージョン間で安定させるには難しすぎます。

ここで気をつけてください、あなたが考えていることは一般的にあまり意味がありません。FileStream.Flush()を呼び出すと、プログラムがクラッシュする前にログデータが書き込まれるようになり、最新のログがあることを確認できます。過負荷にtrueを渡すと、パフォーマンスに非常に悪影響を及ぼします。ディスクの書き込みは非常に遅く、プログラムがマシンをブルースクリーンする習慣がある場合にのみ必要です。その場合、ドライブセクターのサイズにもあまり関心がないはずです。その知識を活用できる唯一の方法は、ログデータをバッファリングすることだからです。Flush()も使用する場合、バッファリングは最後に実行したいことです。

于 2012-12-29T14:49:33.700 に答える