Compartir a través de


FSCTL_GET_NTFS_FILE_RECORD IOCTL (winioctl.h)

Recupera el primer registro de archivo que esté en uso y tenga un valor ordinal menor o igual que el número de referencia de archivo solicitado.

Para realizar esta operación, llame a la función DeviceIoControl con los siguientes parámetros.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  FSCTL_GET_NTFS_FILE_RECORD,       // dwIoControlCode
  (LPVOID) lpInBuffer,              // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  (LPVOID) lpOutBuffer,             // output buffer
  (DWORD) nOutBufferSize,           // size of output buffer
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Comentarios

Este código de control enumera los identificadores de archivo de forma descendente y siempre devuelve un registro de archivo que está en uso. Esto significa que el identificador de archivo devuelto por este código de control puede no ser el mismo que el identificador de archivo especificado en el búfer de entrada. Por ejemplo, si los identificadores de archivo de 1 a 9 y 15 están en uso, los identificadores de archivo de 10 a 14 no están en uso y se solicita el registro de archivo correspondiente al identificador de archivo 15, se devuelve ese registro de archivo.

Si se solicitan los registros de archivo correspondientes a los identificadores de archivo del 10 al 14, se devuelve el registro de archivo correspondiente al identificador de archivo 9. Si se solicita alguno de los registros de archivo correspondientes a los identificadores de archivo del 1 al 9, se devuelven esos registros de archivo.

Para determinar el tamaño correcto del búfer de salida al que apunta lpOutBuffer, llame primero al código de control FSCTL_GET_NTFS_VOLUME_DATA para obtener el tamaño de un registro de archivo. Este es el valor del miembro BytesPerFileRecordSegment de la estructura de NTFS_VOLUME_DATA_BUFFER devuelta. A continuación, establezca el tamaño del búfer de salida en la siguiente expresión:

sizeof (NTFS_FILE_RECORD_OUTPUT_BUFFER) + sizeof (one file record) - 1

Si un archivo consta de varios registros de archivos, se deben recuperar individualmente.

En Windows 8 y Windows Server 2012, este código es compatible con las siguientes tecnologías.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0 No
Conmutación por error transparente (TFO) de SMB 3.0 No
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS) No

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winioctl.h (incluya Windows.h)

Consulte también