Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IoReadPartitionTable- Routine ist veraltete und wird nur zur Unterstützung vorhandener Treiber bereitgestellt. Neue Treiber müssen IoReadPartitionTableExverwenden. IoReadPartitionTable- liest eine Liste der 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
Zeigen Sie 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 weist IoReadPartitionTable den Speicher für diesen Puffer aus einem nicht ausgelagerten Pool zu und gibt die Laufwerklayoutinformationen darin zurück.
Rückgabewert
Diese Routine gibt einen Wert von STATUS_SUCCESS zurück, wenn mindestens eine Sektortabelle gelesen wurde. Andernfalls wird ein Fehlerstatus zurückgegeben und der Zeiger bei PartitionBuffer- auf NULL-festgelegt.
Bemerkungen
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, die PartitionBuffer- zuzuordnen, die von dieser Routine mit ExFreePool-zugeordnet wurde.
Der von dieser Routine verwendete Algorithmus wird durch den booleschen Wert ReturnRecognizedPartitionsbestimmt:
- Lesen Sie jede Partitionstabelle, und füllen Sie für jede gültige und erkannte Partition ein Element in einem Array von PARTITION_INFORMATION Einträgen aus. Das Array der Partitionsinformationseinträge wird durch das PartitionEntry Member einer DRIVE_LAYOUT_INFORMATION-Struktur verwiesen. Die DRIVE_LAYOUT_INFORMATION Struktur befindet sich an der Position, auf die PartitionBufferverweist. Erweiterte Partitionen befinden sich, um andere Partitionstabellen zu finden, aber es werden keine Einträge erstellt.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Universal |
| Header- | ntddk.h (include Ntddk.h) |
| Library | NtosKrnl.lib |
| DLL- | NtosKrnl.exe |
| IRQL- | PASSIVE_LEVEL |
| DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |