Fungsi SetFileBandwidthReservation (winbase.h)

Meminta agar bandwidth untuk aliran file yang ditentukan dicadangkan. Reservasi ditentukan sebagai sejumlah byte dalam periode milidetik untuk permintaan I/O pada handel file yang ditentukan.

Sintaks

BOOL SetFileBandwidthReservation(
  [in]  HANDLE  hFile,
  [in]  DWORD   nPeriodMilliseconds,
  [in]  DWORD   nBytesPerPeriod,
  [in]  BOOL    bDiscardable,
  [out] LPDWORD lpTransferSize,
  [out] LPDWORD lpNumOutstandingRequests
);

Parameter

[in] hFile

Handel ke file.

[in] nPeriodMilliseconds

Periode reservasi, dalam milidetik. Periode adalah waktu dari mana I/O dikeluarkan ke kernel sampai waktu I/O harus diselesaikan. Nilai minimum yang didukung untuk aliran file dapat ditentukan dengan melihat nilai yang dikembalikan melalui parameter lpPeriodMilliseconds ke fungsi GetFileBandwidthReservation , pada handel yang belum memiliki kumpulan reservasi bandwidth.

[in] nBytesPerPeriod

Bandwidth untuk dicadangkan, dalam byte per periode. Nilai maksimum yang didukung untuk aliran file dapat ditentukan dengan melihat nilai yang dikembalikan melalui parameter lpBytesPerPeriod ke fungsi GetFileBandwidthReservation , pada handel yang belum memiliki set reservasi bandwidth.

[in] bDiscardable

Menunjukkan apakah I/O harus diselesaikan dengan kesalahan jika driver tidak dapat memenuhi operasi I/O sebelum periode berakhir. Jika salah satu driver untuk aliran file yang ditentukan tidak mendukung fungsionalitas ini, fungsi ini dapat mengembalikan keberhasilan dan mengabaikan bendera. Untuk memverifikasi apakah pengaturan akan dihormati, panggil fungsi GetFileBandwidthReservation menggunakan handel hFile yang sama dan periksa nilai pengembalian *pDiscardable .

[out] lpTransferSize

Pointer ke variabel yang menerima ukuran minimum setiap permintaan I/O individu yang mungkin dikeluarkan oleh aplikasi. Semua permintaan I/O harus kelipatan TransferSize.

[out] lpNumOutstandingRequests

Pointer ke variabel yang menerima jumlah potongan TransferSize yang harus diizinkan aplikasi untuk menjadi luar biasa dengan sistem operasi. Ini memungkinkan tumpukan penyimpanan untuk menjaga perangkat tetap sibuk dan memungkinkan throughput maksimum.

Nilai kembali

Mengembalikan bukan nol jika berhasil atau nol sebaliknya.

Reservasi dapat gagal jika tidak ada cukup bandwidth yang tersedia pada volume karena reservasi yang ada; dalam hal ini ERROR_NO_SYSTEM_RESOURCES dikembalikan.

Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Reservasi bandwidth yang diminta harus lebih besar dari atau sama dengan satu paket per periode. Periode minimum, dalam milidetik, byte maksimum per periode, dan ukuran transfer minimum, dalam byte, untuk volume tertentu dikembalikan melalui parameter lpPeriodMilliseconds, lpBytesPerPeriod, dan lpTransferSize ke GetFileBandwidthReservation pada handel yang belum digunakan dalam panggilan ke SetFileBandwidthReservation. Dengan kata lain:

1 ≤ (nBytesPerPeriod)×(lpPeriodMilliseconds)/(lpTransferSize)/(nPeriodMilliseconds)

IIn Windows 8 dan Windows Server 2012, fungsi 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 Berbagi File Peluasan Skala (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Tidak
Sistem File Tangguh (ReFS) Ya

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Fungsi Manajemen File

GetFileBandwidthReservation