Función IoWritePartitionTableEx (ntddk.h)
La rutina IoWritePartitionTableEx escribe tablas de partición de las entradas del búfer de lista de particiones para cada partición del disco representado por el objeto de dispositivo especificado.
Sintaxis
NTSTATUS IoWritePartitionTableEx(
[in] PDEVICE_OBJECT DeviceObject,
_DRIVE_LAYOUT_INFORMATION_EX *DriveLayout
);
Parámetros
[in] DeviceObject
Puntero al objeto de dispositivo que representa el disco cuyas tablas de partición se van a escribir.
DriveLayout
Puntero al búfer de diseño de unidad que contiene las entradas de la lista de particiones. Para obtener información más detallada, consulte DRIVE_LAYOUT_INFORMATION_EX.
Valor devuelto
IoWritePartitionTableEx devuelve un código de estado de STATUS_SUCCESS si todas las escrituras se completaron sin errores. En caso de error, los códigos de error devueltos por IoWritePartitionTableEx pueden incluir, entre otros, la siguiente lista:
Código devuelto | Descripción |
---|---|
STATUS_DEVICE_NOT_READY | Indica un error que lee la geometría correcta del disco. |
STATUS_INSUFFICIENT_RESOURCES | Indica un error al asignar los recursos necesarios (por ejemplo, memoria del montón, IRP, etc.). |
STATUS_UNSUCCESSFUL | Indica que el sector cero no tenía la firma de disco MBR esperada. |
Comentarios
IoWritePartitionTableEx reemplaza a la rutina obsoleta IoWritePartitionTable. A diferencia de la rutina anterior, puede escribir en tablas de particiones GUID, así como en tablas de particiones de registros de arranque maestro.
Los controladores de disco solo deben usar IoWritePartitionTableEx. Otros controladores deben usar la solicitud de E/S de disco IOCTL_DISK_SET_DRIVE_LAYOUT_EX en su lugar.
Cuando un controlador de dispositivo de disco recibe una solicitud de IRP_MJ_DEVICE_CONTROL para establecer el tipo de partición en una entrada de tabla de particiones o para volver a particionar el disco, debe llamar a IoWritePartitionTableEx. Por lo general, la utilidad de formato emite la solicitud de control de dispositivos, que realiza funciones de control de E/S en las particiones y los discos de la máquina.
Para restablecer un tipo de partición, el controlador pasa un puntero al objeto de dispositivo, que representa el disco físico y el número de la partición asociada al objeto de dispositivo que la utilidad de formato tiene abierta. Cuando un disco se va a volver a particionar dinámicamente, el controlador de disco debe anular su conjunto de objetos de dispositivo que representan las particiones de disco actuales y crear un nuevo conjunto de objetos de dispositivo que representen las nuevas particiones en el disco.
Para crear o eliminar particiones, debe obtenerse una descripción completa del sistema mediante una llamada a IoReadPartitionTableEx. La utilidad de formato del sistema puede modificar la estructura de diseño de unidad para reflejar una nueva configuración del disco.
IoWritePartitionTableEx es sincrónico. Debe llamarlo la rutina dispatch del controlador de disco o un subproceso de controlador. Por lo tanto, todos los subprocesos del sistema de archivos y de usuario deben estar preparados para especificar un estado de espera al emitir la solicitud de control de dispositivo para restablecer los tipos de partición del dispositivo.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | ntddk.h (incluya Ntddk.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |