Bagikan melalui


FSCTL_GET_NTFS_FILE_RECORD IOCTL (winioctl.h)

Mengambil rekaman file pertama yang sedang digunakan dan memiliki nilai ordinal yang kurang dari atau sama dengan nomor referensi file yang diminta.

Untuk melakukan operasi ini, panggil fungsi DeviceIoControl dengan parameter berikut.

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

Keterangan

Kode kontrol ini menghitung pengidentifikasi file dengan cara menurun, dan selalu mengembalikan rekaman file yang sedang digunakan. Ini berarti bahwa pengidentifikasi file yang dikembalikan oleh kode kontrol ini mungkin tidak sama dengan pengidentifikasi file yang ditentukan dalam buffer input. Misalnya, jika pengidentifikasi file 1 sampai 9 dan 15 sedang digunakan, pengidentifikasi file 10 hingga 14 tidak digunakan, dan catatan file yang sesuai dengan pengidentifikasi file 15 diminta, rekaman file tersebut dikembalikan.

Jika catatan file yang sesuai dengan pengidentifikasi file 10 hingga 14 diminta, rekaman file yang sesuai dengan pengidentifikasi file 9 dikembalikan. Jika salah satu catatan file yang sesuai dengan pengidentifikasi file 1 hingga 9 diminta, rekaman file tersebut dikembalikan.

Untuk menentukan ukuran buffer output yang benar yang ditunjukkan oleh lpOutBuffer, pertama-tama panggil kode kontrol FSCTL_GET_NTFS_VOLUME_DATA untuk mendapatkan ukuran satu rekaman file. Ini adalah nilai anggota BytesPerFileRecordSegment dari struktur NTFS_VOLUME_DATA_BUFFER yang dikembalikan. Kemudian atur ukuran buffer output ke ekspresi berikut:

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

Jika file terdiri dari beberapa rekaman file, file harus diambil satu per satu.

Di Windows 8 dan Windows Server 2012, kode ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Tidak
SMB 3.0 Transparent Failover (TFO) Tidak
SMB 3.0 dengan Scale-out File Shares (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Ya
Sistem File Tangguh (ReFS) Tidak

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winioctl.h (termasuk Windows.h)

Lihat juga