IOCTL_DISK_CREATE_DISK IOCTL (ntdddisk.h)
Erstellt eine leere Partition für das Geräteobjekt. Er kann entweder auf einem EFI-Datenträger oder einem MBR-Datenträger ausgeführt werden. Welche Parameter zum Erstellen eines leeren Datenträgers erforderlich sind, hängt vom Typ der Partitionstabelle ab, die auf dem Datenträger abgelegt wird. Weitere Informationen finden Sie unter CREATE_DISK.
Datenträgertreiber listen Partitionen auf, als wären sie untergeordnete Geräte. Daher benachrichtigt der Datenträgerklassentreiber den PnP-Manager beim Erstellen der neuen Partition über einen Aufruf von IoInvalidateDeviceRelations , dass das Datenträgergerät über ein neues untergeordnetes Gerät (Partition) verfügt.
Hauptcode
Eingabepuffer
Der Puffer bei Irp-AssociatedIrp.SystemBuffer> enthält die CREATE_DISK Daten.
Eingabepufferlänge
Parameters.DeviceIoControl.InputBufferLength im E/A-Stapelspeicherort des IRP gibt die Größe des Puffers an, der dem Treiber zur Verfügung gestellt wird, in Bytes, der >= sizeof(CREATE_DISK) sein muss. Andernfalls wird der Treiber mit einem Fehler status STATUS_INFO_LENGTH_MISMATCH zurückgegeben.Ausgabepuffer
Keine.
Länge des Ausgabepuffers
Keine.
Statusblock
Das Feld Information ist auf 0 festgelegt. Das Feld Status ist auf STATUS_SUCCESS festgelegt, wenn der Vorgang erfolgreich war. Weitere mögliche status Werte sind: STATUS_NOT_SUPPORTED, wenn die angeforderte Partitionsart nicht unterstützt wird; STATUS_DEVICE_NOT_READY, wenn der Klassentreiber die Datenträgergeometrie nicht abrufen konnte; und STATUS_INSUFFICIENT_RESOURCES, wenn der Klassentreiber keine erforderliche Ressource abrufen konnte, z. B. Heapspeicher.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntdddisk.h (include Ntdddisk.h) |