Share via


FSCTL_GET_NTFS_FILE_RECORD IOCTL (winioctl.h)

Recupera il primo record di file in uso ed è di un valore ordinale minore o uguale al numero di riferimento del file richiesto.

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

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

Commenti

Questo codice di controllo enumera gli identificatori di file in modo verso il basso e restituisce sempre un record di file in uso. Ciò significa che l'identificatore di file restituito da questo codice di controllo potrebbe non essere uguale all'identificatore di file specificato nel buffer di input. Ad esempio, se gli identificatori di file da 1 a 9 e 15 sono in uso, gli identificatori di file da 10 a 14 non sono in uso e il record di file corrispondente all'identificatore di file 15 viene richiesto, viene restituito il record di file.

Se vengono richiesti i record di file corrispondenti agli identificatori di file da 10 a 14, viene restituito il record di file corrispondente all'identificatore di file 9. Se viene richiesto uno dei record di file corrispondenti agli identificatori di file da 1 a 9, tali record di file vengono restituiti.

Per determinare le dimensioni corrette del buffer di output a cui punta lpOutBuffer, chiamare prima il codice di controllo FSCTL_GET_NTFS_VOLUME_DATA per ottenere le dimensioni di un record di file. Si tratta del valore del membro BytesPerFileRecordSegmentdella struttura NTFS_VOLUME_DATA_BUFFER restituita. Impostare quindi le dimensioni del buffer di output sull'espressione seguente:

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

Se un file è costituito da più record di file, devono essere recuperati singolarmente.

In Windows 8 e Windows Server 2012 questo codice è supportato dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
File system del volume condiviso del cluster (CsvFS)
File system resiliente (ReFS) No

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winioctl.h (include Windows.h)

Vedi anche