共用方式為


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 表示扇區零沒有預期的 MBR 磁碟簽章。

言論

IoWritePartitionTableEx 會取代 IoWritePartitionTable 過時的例程。 不同於較舊的例程,它可以寫入 GUID 數據分割數據表,以及主要開機記錄數據分割數據表。

IoWritePartitionTableEx 只能由磁碟驅動器使用。 其他驅動程序應該改用 IOCTL_DISK_SET_DRIVE_LAYOUT_EX 磁碟 I/O 要求。

當磁碟設備驅動器收到IRP_MJ_DEVICE_CONTROL要求,以在分割區數據表項目中設定分割類型,或重新分割磁碟時,它應該呼叫 IoWritePartitionTableEx。 裝置控制要求通常是由格式公用程式所發出,它會在機器的分割區和磁碟上執行 I/O 控制項功能。

若要重設分割區類型,驅動程式會將指標傳遞給裝置物件,代表實體磁碟,以及與格式公用程式已開啟之裝置對象相關聯的分割區數目。 當磁碟要動態重新分割時,磁碟驅動器必須卸除其代表目前磁碟分區的裝置物件集,並建立一組代表磁碟上新分割區的新裝置物件。

若要建立或刪除分割區,必須呼叫 IoReadPartitionTableEx取得系統的完整描述。 系統格式公用程式可以修改磁碟配置結構,以反映磁碟的新組態。

IoWritePartitionTableEx 是同步的。 它必須由磁碟驅動程式的 Dispatch 例程或驅動程式線程呼叫。 因此,發出裝置控制要求來重設裝置的數據分割類型時,所有使用者和文件系統線程都必須準備好進入等候狀態。

要求

要求 價值
目標平臺 普遍
標頭 ntddk.h (包括 Ntddk.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)PowerIrpDDis(wdm)

另請參閱

IoCreateDevice

IoReadPartitionTableEx

IoSetPartitionInformationEx