Share via


SetFileBandwidthReservation 함수(winbase.h)

지정된 파일 스트림의 대역폭을 예약하도록 요청합니다. 예약은 지정된 파일 핸들의 I/O 요청에 대한 밀리초 단위 바이트 수로 지정됩니다.

구문

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

매개 변수

[in] hFile

파일에 대한 핸들입니다.

[in] nPeriodMilliseconds

예약 기간(밀리초)입니다. 기간은 I/O가 완료될 때까지 I/O가 커널에 발급되는 시간입니다. 파일 스트림에 대해 지원되는 최소 값은 대역폭 예약 집합이 없는 핸들에서 lpPeriodMilliseconds 매개 변수를 통해 GetFileBandwidthReservation 함수로 반환된 값을 확인하여 확인할 수 있습니다.

[in] nBytesPerPeriod

예약할 대역폭(기간당 바이트)입니다. 파일 스트림에 대해 지원되는 최대 값은 대역폭 예약 집합이 없는 핸들에서 lpBytesPerPeriod 매개 변수를 통해 GetFileBandwidthReservation 함수로 반환된 값을 확인하여 확인할 수 있습니다.

[in] bDiscardable

기간이 만료되기 전에 드라이버가 I/O 작업을 충족할 수 없는 경우 오류로 I/O를 완료해야 하는지 여부를 나타냅니다. 지정된 파일 스트림의 드라이버 중 하나가 이 기능을 지원하지 않는 경우 이 함수는 성공을 반환하고 플래그를 무시할 수 있습니다. 설정이 적용되는지 확인하려면 동일한 hFile 핸들을 사용하여 GetFileBandwidthReservation 함수를 호출하고 *pDiscardable 반환 값을 검사합니다.

[out] lpTransferSize

애플리케이션에서 발급할 수 있는 개별 I/O 요청의 최소 크기를 수신하는 변수에 대한 포인터입니다. 모든 I/O 요청은 TransferSize의 배수여야 합니다.

[out] lpNumOutstandingRequests

애플리케이션이 운영 체제에서 처리할 수 있도록 허용해야 하는 TransferSize 청크 수를 수신하는 변수에 대한 포인터입니다. 이렇게 하면 스토리지 스택이 디바이스를 사용 중인 상태로 유지하고 최대 처리량을 허용합니다.

반환 값

성공하면 0이 아닌 값을 반환하고 그렇지 않으면 0을 반환합니다.

기존 예약으로 인해 볼륨에서 사용할 수 있는 대역폭이 충분하지 않으면 예약이 실패할 수 있습니다. 이 경우 ERROR_NO_SYSTEM_RESOURCES 반환됩니다.

확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

요청된 대역폭 예약은 기간당 하나의 패킷보다 크거나 같아야 합니다. 특정 볼륨의 최소 기간(밀리초, 기간당 최대 바이트 및 최소 전송 크기)은 SetFileBandwidthReservation 호출에 사용되지 않은 핸들에서 GetFileBandwidthReservation에 대한 lpPeriodMilliseconds, lpBytesPerperiodlpTransferSize 매개 변수를 통해 반환됩니다. 다시 말하면,

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

IIn Windows 8 및 Windows Server 2012 이 함수는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 No
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) No
ReFS(Resilient File System) Yes

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

파일 관리 함수

GetFileBandwidthReservation