IoWritePartitionTableEx-Funktion (ntddk.h)
Die IoWritePartitionTableEx Routine schreibt Partitionstabellen aus den Einträgen im Partitionslistenpuffer für jede Partition auf dem Datenträger, die durch das angegebene Geräteobjekt dargestellt wird.
Syntax
NTSTATUS IoWritePartitionTableEx(
[in] PDEVICE_OBJECT DeviceObject,
_DRIVE_LAYOUT_INFORMATION_EX *DriveLayout
);
Parameter
[in] DeviceObject
Zeigen Sie auf das Geräteobjekt, das den Datenträger darstellt, dessen Partitionstabellen geschrieben werden sollen.
DriveLayout
Zeigen Sie auf den Laufwerklayoutpuffer, der die Partitionslisteneinträge enthält. Ausführlichere Informationen finden Sie unter DRIVE_LAYOUT_INFORMATION_EX.
Rückgabewert
IoWritePartitionTableEx gibt einen Statuscode STATUS_SUCCESS zurück, wenn alle Schreibvorgänge ohne Fehler abgeschlossen wurden. Im Falle eines Fehlers können die von IoWritePartitionTableEx zurückgegebenen Fehlercodes die folgende Liste enthalten, jedoch nicht beschränkt auf:
Rückgabecode | Beschreibung |
---|---|
STATUS_DEVICE_NOT_READY | Gibt einen Fehler an, der die richtige Datenträgergeometrie liest. |
STATUS_INSUFFICIENT_RESOURCES | Gibt an, dass erforderliche Ressourcen nicht zugeordnet werden (z. B. Heap-Speicher, IRPs usw.). |
STATUS_UNSUCCESSFUL | Gibt an, dass der Sektor 0 nicht über die erwartete MBR-Datenträgersignatur verfügt hat. |
Bemerkungen
IoWritePartitionTableEx ersetzt die veraltete Routine IoWritePartitionTable. Anders als bei der älteren Routine können Sie in GUID-Partitionstabellen sowie Partitionstabellen für master boot record schreiben.
IoWritePartitionTableEx- darf nur von Datenträgertreibern verwendet werden. Andere Treiber sollten stattdessen die IOCTL_DISK_SET_DRIVE_LAYOUT_EX Datenträger-E/A-Anforderung verwenden.
Wenn ein Datenträgergerätetreiber eine IRP_MJ_DEVICE_CONTROL Anforderung empfängt, den Partitionstyp in einem Partitionstabelleneintrag festzulegen oder den Datenträger neu zu partitionieren, sollte er IoWritePartitionTableExaufrufen. Die Gerätesteuerungsanforderung wird in der Regel vom Formathilfsprogramm ausgegeben, das E/A-Steuerungsfunktionen auf den Partitionen und Datenträgern auf dem Computer ausführt.
Um einen Partitionstyp zurückzusetzen, übergibt der Treiber einen Zeiger an das Geräteobjekt, das den physischen Datenträger darstellt, und die Nummer der Partition, die dem Geräteobjekt zugeordnet ist, das das Hilfsprogramm für das Format geöffnet hat. Wenn ein Datenträger dynamisch neu partitioniert werden soll, muss der Datenträgertreiber seine Gruppe von Geräteobjekten abreißen, die die aktuellen Datenträgerpartitionen darstellen, und einen neuen Satz von Geräteobjekten erstellen, die die neuen Partitionen auf dem Datenträger darstellen.
Um Partitionen zu erstellen oder zu löschen, muss eine vollständige Beschreibung des Systems durch einen Aufruf von IoReadPartitionTableExabgerufen werden. Die Laufwerklayoutstruktur kann vom Systemformatprogramm geändert werden, um eine neue Konfiguration des Datenträgers widerzuspiegeln.
IoWritePartitionTableEx synchron ist. Sie muss von der Dispatch-Routine des Datenträgertreibers oder von einem Treiberthread aufgerufen werden. Daher müssen alle Benutzer- und Dateisystemthreads vorbereitet sein, um beim Ausgeben der Gerätesteuerungsanforderung einen Wartezustand einzugeben, um Partitionstypen für das Gerät zurückzusetzen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntddk.h (include Ntddk.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |