Freigeben über


IoWritePartitionTable-Funktion (ntddk.h)

Die IoWritePartitionTable- Routine ist veraltete und wird nur zur Unterstützung vorhandener Treiber bereitgestellt. Neue Treiber müssen IoWritePartitionTableExverwenden.

IoWritePartitionTable- schreibt Partitionstabellen aus den Einträgen im Partitionslistenpuffer für jede Partition auf dem Datenträger, der durch das angegebene Geräteobjekt dargestellt wird.

Syntax

NTSTATUS IoWritePartitionTable(
  [in] PDEVICE_OBJECT            DeviceObject,
  [in] ULONG                     SectorSize,
  [in] ULONG                     SectorsPerTrack,
  [in] ULONG                     NumberOfHeads,
  [in] _DRIVE_LAYOUT_INFORMATION *PartitionBuffer
);

Parameter

[in] DeviceObject

Zeigen Sie auf das Geräteobjekt, das den Datenträger darstellt, dessen Partitionstabellen geschrieben werden sollen.

[in] SectorSize

Gibt die Größe in Byte von Sektoren auf dem Gerät an.

[in] SectorsPerTrack

Gibt die Titelgröße auf dem Gerät an.

[in] NumberOfHeads

Gibt die Anzahl der Spuren pro Zylinder an.

[in] PartitionBuffer

Zeigen Sie auf den Laufwerklayoutpuffer, der die Partitionslisteneinträge enthält. Ausführlichere Informationen finden Sie unter DRIVE_LAYOUT_INFORMATION.

Rückgabewert

IoWritePartitionTablo gibt einen Statuscode von STATUS_SUCCESS zurück, wenn alle Schreibvorgänge ohne Fehler abgeschlossen wurden. Im Falle eines Fehlers können die von IoWritePartitionTable 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

IoWritePartitionTable- dürfen nur von Datenträgertreibern verwendet werden. Andere Treiber sollten stattdessen die IOCTL_DISK_SET_DRIVE_LAYOUT Datenträger-E/A-Anforderung verwenden.

IoWritePartitionTable- wird aufgerufen, wenn ein Datenträgergerätetreiber aufgefordert wird, den Partitionstyp in einem Partitionstabelleneintrag festzulegen oder den Datenträger durch eine IRP_MJ_DEVICE_CONTROL Anforderung neu zu partitionieren. 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 auf 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.

Anwendungen, die Partitionen erstellen und löschen und vollständige Beschreibungen des Systems erfordern, sollten IoReadPartitionTable- mit ReturnRecognizedPartitions aufrufen, auf FALSEfestgelegt ist. Die Laufwerklayoutstruktur kann vom Systemformatprogramm geändert werden, um eine neue Konfiguration des Datenträgers widerzuspiegeln.

IoWritePartitionTable- 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 HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Siehe auch

IoCreateDevice

IoReadPartitionTable-

IoSetPartitionInformation-