次の方法で共有


IoWritePartitionTableEx 関数 (ntddk.h)

IoWritePartitionTableEx ルーチンは、特定のデバイス オブジェクトによって表されるディスク上の各パーティションのパーティション リスト バッファー内のエントリからパーティション テーブルを書き込みます。

構文

NTSTATUS IoWritePartitionTableEx(
  [in] PDEVICE_OBJECT               DeviceObject,
       _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout
);

パラメーター

[in] DeviceObject

パーティション テーブルを書き込むディスクを表すデバイス オブジェクトへのポインター。

DriveLayout

パーティション リスト エントリを含むドライブ レイアウト バッファーへのポインター。 詳細については、DRIVE_LAYOUT_INFORMATION_EXを参照してください。

戻り値

IoWritePartitionTableEx は、すべての書き込みがエラーなしで完了した場合にSTATUS_SUCCESSの状態コードを返します。 エラーが発生した場合、IoWritePartitionTableEx によって返されるエラー コードには、次の一覧が含まれますが、これに限定されません。

リターン コード 形容
STATUS_DEVICE_NOT_READY 正しいディスク ジオメトリの読み取りエラーを示します。
STATUS_INSUFFICIENT_RESOURCES 必要なリソース (ヒープ メモリ、IRP など) の割り当てに失敗したことを示します。
STATUS_UNSUCCESSFUL セクター 0 に予想される MBR ディスク署名がなかったことを示します。

備考

IoWritePartitionTableEx は、古いルーチンを IoWritePartitionTable 置き換えます。 以前のルーチンとは異なり、GUID パーティション テーブルとマスター ブート レコード パーティション テーブルに書き込むことができます。

IoWritePartitionTableEx は、ディスク ドライバーでのみ使用する必要があります。 他のドライバーでは、代わりに IOCTL_DISK_SET_DRIVE_LAYOUT_EX ディスク I/O 要求を使用する必要があります。

ディスク デバイス ドライバーは、パーティション テーブル エントリにパーティションの種類を設定するIRP_MJ_DEVICE_CONTROL要求を受け取る場合、またはディスクを再パーティション分割する場合は、IoWritePartitionTableEx 呼び出す必要があります。 通常、デバイス制御要求はフォーマット ユーティリティによって発行され、コンピューター内のパーティションとディスクに対して I/O 制御機能が実行されます。

パーティションの種類をリセットするために、ドライバーは、物理ディスクを表すデバイス オブジェクトへのポインターと、フォーマット ユーティリティが開いているデバイス オブジェクトに関連付けられているパーティションの数を渡します。 ディスクを動的に再パーティション分割する場合、ディスク ドライバーは、現在のディスク パーティションを表すデバイス オブジェクトのセットを破棄し、ディスク上の新しいパーティションを表すデバイス オブジェクトの新しいセットを作成する必要があります。

パーティションを作成または削除するには、IoReadPartitionTableEx 呼び出しによってシステムの完全な説明を取得する必要があります。 ドライブ・レイアウト構造は、システム・フォーマット・ユーティリティーによって、ディスクの新しい構成を反映するように変更することができます。

IoWritePartitionTableEx 同期です。 ディスク ドライバーのディスパッチ ルーチンまたはドライバー スレッドによって呼び出す必要があります。 したがって、デバイスのパーティションの種類をリセットするデバイス制御要求を発行するときに、すべてのユーザーとファイル システムのスレッドが待機状態に入る準備をする必要があります。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー ntddk.h (Ntddk.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

IoCreateDevice

IoReadPartitionTableEx

IoSetPartitionInformationEx