Función IoSetPartitionInformationEx (ntddk.h)
Para el disco representado por DeviceObject, la rutina IoSetPartitionInformationEx inicializa una entrada de tabla de particiones con la información especificada en la estructura SET_PARTITION_INFORMATION_EX .
Sintaxis
NTSTATUS IoSetPartitionInformationEx(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG PartitionNumber,
[in] _SET_PARTITION_INFORMATION_EX *PartitionInfo
);
Parámetros
[in] DeviceObject
Puntero al objeto de dispositivo que representa el dispositivo en el que se va a establecer el tipo de partición.
[in] PartitionNumber
Especifica el número de partición en el dispositivo cuyo tipo de partición se va a establecer.
[in] PartitionInfo
Estructura cuyo miembro PartitionType especifica el tipo para la partición. Para los valores de PartitionType definidos actualmente PARTITION_INFORMATION.
Valor devuelto
Si IoSetPartitionInformationEx devuelve STATUS_SUCCESS, el controlador de disco actualiza su noción del tipo de partición para esta partición en su extensión de dispositivo.
Comentarios
Los controladores de disco solo deben usar IoSetPartitionInformationEx. En su lugar, otros controladores deben usar la solicitud de E/S de disco IOCTL_DISK_SET_PARTITION_INFO_EX .
Se llama a esta rutina cuando se solicita un controlador de dispositivo de disco para establecer la información de partición en una entrada de tabla de particiones mediante una solicitud de IRP_MJ_DEVICE_CONTROL. Esta solicitud se emite generalmente por la utilidad de formato, que realiza funciones de control de E/S en la 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. Puesto que las rutinas HAL que subyacen a IoSetPartitionInformationEx se desarrollaron antes de implementar la compatibilidad con la creación de particiones dinámicas, no distinguen entre la particiónordinal (es decir, el orden de una partición en un disco) y el número de partición (el número de partición asignado a una partición para identificarlo en el sistema). Los controladores deben llamar a IoSetPartitionInformationEx mediante el número ordinal de la partición y no el número de partición real.
Si la partición es una partición de tipo registro de arranque maestro (MBR), IoSetPartitionInformationEx se limita a establecer el estilo de partición y el estilo de partición, que se representa como un carácter sin firmar. Consulte SET_PARTITION_INFORMATION_MBR para obtener más información sobre estos valores.
Si la partición es una partición de tabla de particiones GUID (GPT), IoSetPartitionInformationEx establece los valores siguientes: el estilo de partición, el tipo de partición, representado por un GUID en lugar de un entero como era el caso de las particiones MBR; un identificador de partición, representado también por un GUID; un conjunto de atributos (vea extensible Firmware Interface para obtener una descripción de estos atributos); y un nombre Unicode para la partición. Consulte SET_PARTITION_INFORMATION_GPT para obtener más información sobre estos valores.
Esta rutina es sincrónica y debe ser llamada por la rutina dispatch del controlador de disco o por un subproceso de controlador. Por lo tanto, todos los subprocesos del sistema de archivos y de usuario deben estar preparados para entrar en un estado de espera al emitir la solicitud de control de dispositivo para establecer el tipo de partición para el dispositivo.
Esta rutina funciona bajo la suposición de que el número de partición pasado por el controlador de disco existe realmente.
Se debe llamar a esta rutina en IRQL = PASSIVE_LEVEL porque usa un objeto de evento de kernel para sincronizar la finalización de E/S en el dispositivo. El evento no se puede establecer en el estado Signaled sin poner en cola ni ejecutar la rutina de APC especial del kernel del sistema de E/S para la finalización de E/S.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | ntddk.h (incluya Ntddk.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte la sección Comentarios) |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |