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