共用方式為


IOCTL_VOLUME_READ_PLEX IOCTL (ntddvol.h)

在磁碟區的特定 plex 上執行讀取。 由於所有 plexes 都相同,因此磁碟區管理員可以在一般讀取作業期間,從任何磁碟區的 plexes 擷取數據。 磁碟區管理員會將讀取分散在磁碟區的叢集之間,以平衡實體媒體上的 I/O 負載,並將讀取效能最大化。

不過,如果應用程式或內核模式元件必須從特定 plex 讀取數據,而不是讓磁碟區管理員挑選一個,則可以使用此 IOCTL 來執行此動作。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

呼叫端會在 Irp->AssociatedIrp.SystemBuffer的緩衝區開頭插入包含邏輯位移的 VOLUME_READ_PLEX_INPUT 結構。

輸入緩衝區長度

參數.DeviceIoControl.InputBufferLength IRP 的 I/O 堆棧位置,表示輸入緩衝區的大小,其必須大於或等於 sizeof(VOLUME_READ_PLEX_INPUT) 的值。

輸出緩衝區

如同 IRP_MJ_READ,此 IOCTL 會將讀取資料儲存在 Irp->MdlAddress 欄位中,以記憶體描述元清單的形式傳遞的記憶體緩衝區中。

輸出緩衝區長度

緩衝區的長度。

狀態區塊

如果作業成功,磁碟區管理員會將 [狀態] 欄位設定為 [STATUS_SUCCESS]。

Irp->AssociatedIrp.SystemBuffer 的VOLUME_READ_PLEX_INPUT結構具有必須在 512 位元組界限上對齊的 Length 成員。 如果 長度 沒有適當的對齊方式,作業會失敗,而磁碟區管理員會將 [狀態] 字段設定為 [VKE_EINVAL]。

要求

要求 價值
最低支援的用戶端 從 Windows XP 開始提供。
標頭 ntddvol.h (include Ntddvol.h)

另請參閱

VOLUME_READ_PLEX_INPUT