IoSetPartitionInformation 函式 (ntddk.h)
IoSetPartitionInformation 例程 過時的,而且只提供以支援現有的驅動程式。 新的驅動程式必須使用 IoSetPartitionInformationEx。
IoSetPartitionInformation 會針對 DeviceObject 所代表之磁碟的數據分割數據表專案中,設定數據分割類型和數位。
語法
NTSTATUS IoSetPartitionInformation(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] ULONG PartitionNumber,
[in] ULONG PartitionType
);
參數
[in] DeviceObject
代表要設定數據分割類型的裝置之裝置物件的指標。
[in] SectorSize
指定磁碟上扇區的大小,以位元組為單位。
[in] PartitionNumber
指定要設定數據分割類型之裝置上的分割區編號。
[in] PartitionType
指定分割區的型別。 如需一些索引鍵分割類型的清單,請參閱 PARTITION_INFORMATION。
傳回值
如果 IoSetPartitionInformation 傳回STATUS_SUCCESS,磁碟驅動程式會在其裝置擴充功能中更新此分割區類型的概念。
言論
IoSetPartitionInformation 只能由磁碟驅動器使用。 其他驅動程式應該改用 IOCTL_DISK_SET_PARTITION_INFO 磁碟 I/O 要求。
當要求磁碟設備驅動器以IRP_MJ_DEVICE_CONTROL要求在分割區數據表項目中設定分割區類型時,就會呼叫此例程。 此要求通常是由格式公用程序發出,它會在分割區上執行 I/O 控件函式。 驅動程式會將指標傳遞給代表實體磁碟的裝置物件,以及與格式公用程式已開啟之裝置對象相關聯的分割區數目。 由於在實作動態數據分割之前,已開發 IoSetPartitionInformation 的 HAL 例程,因此它們不會區分 分割序數(也就是磁碟上分割的順序)和 分割區編號(指派給分割區以便識別給系統的分割區編號)。 驅動程式必須使用分割區 序數 編號,而不是實際的分割區號碼,呼叫ioSetPartitionInformation 。
這個例程是同步的,而且必須由磁碟驅動程式的 Dispatch 例程或驅動程式線程呼叫。 因此,發出裝置控制要求來設定裝置的數據分割類型時,所有使用者和文件系統線程都必須準備好進入等候狀態。
此例程的運作方式是假設磁碟驅動程式傳入的數據分割編號確實存在。
此例程必須在 IRQL = PASSIVE_LEVEL呼叫,因為它會使用核心事件物件來同步處理裝置上的 I/O 完成。 事件無法設定為 Signaled 狀態,而不需要佇列並執行 I/O 系統的特殊核心 APC 例程以進行 I/O 完成。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ntddk.h (包括 Ntddk.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (請參閱一節) |
DDI 合規性規則 | HwStorPortProhibitedDIs(storport)、IrqlIoPassive5(wdm)、PowerIrpDDis(wdm) |