Compartir a través de


Función IoReadPartitionTable (ntddk.h)

La rutina de 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 de este búfer del grupo no paginado y devuelve la información de diseño de 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.

Observaciones

ioReadPartitionTable solo los controladores de disco deben usar. Otros controladores deben usar la solicitud de E/S de disco IOCTL_DISK_GET_DRIVE_LAYOUT en su lugar.

Los controladores de dispositivo 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 usado 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 PARTITION_INFORMATION entradas. La matriz de entradas de información de partición apunta al miembro PartitionEntry de una estructura de 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 buscar 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; las entradas también se compilan para ellas.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntddk.h (incluya Ntddk.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(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