IoReadPartitionTable-Funktion (ntddk.h)
Die IoReadPartitionTable-Routine ist veraltet und wird nur zur Unterstützung vorhandener Treiber bereitgestellt. Neue Treiber müssen IoReadPartitionTableEx verwenden. IoReadPartitionTable liest eine Liste von Partitionen auf einem Datenträger mit einer angegebenen Sektorgröße und erstellt einen Eintrag in der Partitionsliste für jede erkannte Partition.
Syntax
NTSTATUS IoReadPartitionTable(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG SectorSize,
[in] BOOLEAN ReturnRecognizedPartitions,
[out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);
Parameter
[in] DeviceObject
Zeiger auf das Geräteobjekt für den Datenträger, dessen Partitionen gelesen werden sollen.
[in] SectorSize
Gibt die Größe der Sektoren auf dem Datenträger an.
[in] ReturnRecognizedPartitions
Gibt an, ob nur erkannte Partitionen oder alle Partitionseinträge zurückgegeben werden sollen.
[out] PartitionBuffer
Zeiger auf eine nicht initialisierte Adresse. Bei erfolgreicher Ausführung ordnet IoReadPartitionTable den Arbeitsspeicher für diesen Puffer aus einem nicht auslagerten Pool zu und gibt die darin enthaltenen Informationen zum Laufwerklayout zurück.
Rückgabewert
Diese Routine gibt den Wert STATUS_SUCCESS zurück, wenn mindestens eine Sektortabelle gelesen wurde. Andernfalls wird ein Fehler status zurückgegeben und der Zeiger auf PartitionBuffer auf NULL festgelegt.
Hinweise
IoReadPartitionTable darf nur von Datenträgertreibern verwendet werden. Andere Treiber sollten stattdessen die IOCTL_DISK_GET_DRIVE_LAYOUT Datenträger-E/A-Anforderung verwenden.
Datenträgergerätetreiber rufen diese Routine während der Treiberinitialisierung auf.
Es liegt in der Verantwortung des Aufrufers, den PartitionBuffer zu behandeln, der von dieser Routine mit ExFreePool zugewiesen wurde.
Der von dieser Routine verwendete Algorithmus wird durch den booleschen Wert ReturnRecognizedPartitions bestimmt:
- Lesen Sie jede Partitionstabelle, und füllen Sie für jede gefundene gültige und erkannte Partition ein Element in einem Array von PARTITION_INFORMATION Einträgen aus. Auf das Array von Partitionsinformationseinträgen verweist das PartitionEntry-Element einer DRIVE_LAYOUT_INFORMATION-Struktur . Die DRIVE_LAYOUT_INFORMATION Struktur befindet sich an der Position, auf die PartitionBuffer verweist. Erweiterte Partitionen werden gefunden, um andere Partitionstabellen zu finden, aber es werden keine Einträge für sie erstellt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ntddk.h (include Ntddk.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |