Freigeben über


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)

Weitere Informationen