2

アプリケーションからディスクを初期化、パーティション分割、およびフォーマットしようとしています。OSはWindows Server 2008 R2です。これらのタスクにどのメソッドを使用するかは問題ではありませんが、DeviceIoControl API を使用していると仮定しましょう。

アプリケーションが初期化されてパーティションが作成されるとすぐに、「ディスクをフォーマットする必要があります...

ここに画像の説明を入力"

そのため、私のアプリケーションがこのディスクをすぐにフォーマットしても、メッセージ ボックスが表示されたままになり、ユーザーは混乱し、実際に再度フォーマットすることができます。

Windows がそのメッセージ ボックスをポップしないようにする方法はありますか?

4

1 に答える 1

4

状況は、私が当初考えていたよりも少し複雑だったようです。ここで私の発見を説明させてください。他の誰かにとって役立つかもしれません。

ドライブの初期化とフォーマットの方法は本当に重要です。たとえば、次のdiskpartスクリプトはすべてを実行し、Windows はそのメッセージを表示しません:

select disk 2
create partition primary
select part 1
format fs=ntfs label="NEW DISK" quick
assign letter Z
exit

ただし、最初に文字を割り当ててからフォーマットを実行しようとすると、メッセージが表示されます。

しかし、私の場合、diskpart に依存したくありませんでした。DeviceIoControl API を使用してディスクの初期化とパーティション分割を行い、WMI がボリュームを認識するのを待っていたので、WMI 経由でフォーマットできます。

残念ながら、ロック装置もオプションではありませんでした。そうすると、WMI がボリュームを認識しなくなるからです。

この回答に基づいてWindowsがドライブ文字を割り当てずにパーティションを作成する方法は? ShellHWDetectionサービスを停止して開始することにしましたが、実際には完全に機能しました。

于 2013-03-06T17:12:30.920 に答える