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)

Consulte también

IoCreateDevice

IoReadPartitionTableEx

IoSetPartitionInformationEx