Función IoReadPartitionTable (ntddk.h)

La rutina IoReadPartitionTable está obsoleta y solo se proporciona para admitir controladores existentes. Los nuevos controladores deben usar IoReadPartitionTableEx. IoReadPartitionTable lee una lista de particiones en un disco que tiene un tamaño de sector especificado y crea una entrada en la lista de particiones para cada partición reconocida.

Sintaxis

NTSTATUS IoReadPartitionTable(
  [in]  PDEVICE_OBJECT            DeviceObject,
  [in]  ULONG                     SectorSize,
  [in]  BOOLEAN                   ReturnRecognizedPartitions,
  [out] _DRIVE_LAYOUT_INFORMATION **PartitionBuffer
);

Parámetros

[in] DeviceObject

Puntero al objeto de dispositivo del disco cuyas particiones se van a leer.

[in] SectorSize

Especifica el tamaño de los sectores del disco.

[in] ReturnRecognizedPartitions

Indica si solo se deben devolver particiones reconocidas o todas las entradas de partición.

[out] PartitionBuffer

Puntero a una dirección sin inicializar. Si se ejecuta correctamente, IoReadPartitionTable asigna la memoria para este búfer del grupo no paginado y devuelve la información de diseño de la unidad en él.

Valor devuelto

Esta rutina devuelve un valor de STATUS_SUCCESS si se leyó al menos una tabla de sector. De lo contrario, devuelve un estado de error y establece el puntero en PartitionBuffer en NULL.

Comentarios

Los controladores de disco solo deben usar IoReadPartitionTable. En su lugar, otros controladores deben usar la solicitud de E/S de disco IOCTL_DISK_GET_DRIVE_LAYOUT .

Los controladores de dispositivos de disco llaman a esta rutina durante la inicialización del controlador.

Es responsabilidad del autor de la llamada desasignar el partitionBuffer asignado por esta rutina con ExFreePool.

El algoritmo utilizado por esta rutina viene determinado por el valor booleano ReturnRecognizedPartitions:

  • Lea cada tabla de particiones y, para cada partición válida y reconocida encontrada, rellene un elemento en una matriz de entradas de PARTITION_INFORMATION . La matriz de entradas de información de partición apunta al miembro PartitionEntry de una estructura DRIVE_LAYOUT_INFORMATION . La estructura DRIVE_LAYOUT_INFORMATION se encuentra en la ubicación a la que apunta PartitionBuffer. Las particiones extendidas se encuentran para encontrar otras tablas de particiones, pero no se crean entradas para ellas.
Lea cada tabla de particiones y, para cada entrada y cada entrada, rellene una entrada de información de partición. Las particiones extendidas se encuentran para encontrar cada partición en el disco; También se crean entradas para estas.

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

Consulte también

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_SET_DRIVE_LAYOUT

IoSetPartitionInformation

IoWritePartitionTable