FSCTL_GET_NTFS_FILE_RECORD IOCTL (winioctl.h)
Ruft den ersten verwendeten Dateidatensatz ab und weist einen niedrigeren oder gleichen Ordnungswert als die angeforderte Dateireferenznummer auf.
Um diesen Vorgang auszuführen, rufen Sie die Funktion DeviceIoControl mit den folgenden Parametern auf.
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
);
Hinweise
Dieser Steuerelementcode listet Dateibezeichner abwärts auf und gibt immer einen verwendeten Dateidatensatz zurück. Dies bedeutet, dass der von diesem Steuerelementcode zurückgegebene Dateibezeichner möglicherweise nicht mit dem im Eingabepuffer angegebenen Dateibezeichner identisch ist. Wenn beispielsweise die Dateibezeichner 1 bis 9 und 15 verwendet werden, werden die Dateibezeichner 10 bis 14 nicht verwendet, und der Dateidatensatz, der dem Dateibezeichner 15 entspricht, wird dieser Dateidatensatz zurückgegeben.
Wenn die Dateidatensätze angefordert werden, die den Dateibezeichnern 10 bis 14 entsprechen, wird der Dateidatensatz zurückgegeben, der dem Dateibezeichner 9 entspricht. Wenn einer der Dateidatensätze angefordert wird, die den Dateibezeichnern 1 bis 9 entsprechen, werden diese Dateidatensätze zurückgegeben.
Um die richtige Größe des Ausgabepuffers zu bestimmen, auf den lpOutBuffer verweist, rufen Sie zuerst den FSCTL_GET_NTFS_VOLUME_DATA-Steuerelementcode auf, um die Größe eines Dateidatensatzes abzurufen. Dies ist der Wert des BytesPerFileRecordSegment-Elements der zurückgegebenen NTFS_VOLUME_DATA_BUFFER-Struktur . Legen Sie dann die Größe des Ausgabepuffers auf den folgenden Ausdruck fest:
sizeof (NTFS_FILE_RECORD_OUTPUT_BUFFER) + sizeof (one file record) - 1
Wenn eine Datei aus mehreren Dateidatensätzen besteht, müssen diese einzeln abgerufen werden.
In Windows 8 und Windows Server 2012 wird dieser Code von den folgenden Technologien unterstützt.
Technologie | Unterstützt |
---|---|
SMB 3.0-Protokoll (Server Message Block) | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) | No |
Dateisystem mit freigegebenen Clustervolumes (CsvFS) | Ja |
Robustes Dateisystem (Resilient File System, ReFS) | No |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Kopfzeile | winioctl.h (windows.h einschließen) |