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.
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) |