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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk