향후 I/O 링 작업을 위해 버퍼 배열을 시스템에 등록합니다.
Syntax
HRESULT BuildIoRingRegisterBuffers(
HIORING ioRing,
UINT32 count,
IORING_BUFFER_INFO const [] buffers,
UINT_PTR userData
);
매개 변수
ioRing
버퍼가 등록된 I/O 링에 대한 핸들을 나타내는 HIORING 입니다.
count
버퍼 매개 변수에 제공된 버퍼 수를 지정하는 UINT32입니다.
buffers
등록할 버퍼를 나타내는 IORING_BUFFER_INFO 구조체의 배열입니다.
userData
등록 작업을 식별하는 UINT_PTR 값입니다. BuildIoRingCancelRequest 호출을 사용하여 작업을 취소할 때 이 값을 지정합니다. 앱이 작업에 대한 취소 동작을 구현하는 경우 userData 값은 고유해야 합니다. 그렇지 않으면 값이 시스템에 의해 불투명한 것으로 처리되며 0을 포함하여 무엇이든 될 수 있습니다.
반환 값
다음을 포함하지만 제한되지 않는 HRESULT를 반환합니다.
| 가치 | Description |
|---|---|
| S_OK | 성공 |
| IORING_E_SUBMISSION_QUEUE_FULL | 제출 큐가 가득 차서 빌드할 수 있는 추가 항목이 없습니다. 애플리케이션은 기존 항목을 제출하고 큐에 작업을 더 추가하기 전에 일부 항목이 완료되기를 기다려야 합니다. |
| IORING_E_UNKNOWN_REQUIRED_FLAG | 애플리케이션은 구현에 알려지지 않은 필수 플래그를 제공했습니다. 라이브러리 코드는 GetIoRingInfo 호출에서 얻은 IORING_INFOIoRingVersion 필드를 확인하여 지원되는 작업 및 플래그를 결정하는 I/O 링의 API 버전을 결정해야 합니다. 애플리케이션은 I/O 링을 만드는 데 사용한 버전을 알고 있어야 하므로 런타임에 지원되지 않는 플래그를 제공하지 않아야 합니다. |
비고
이 함수를 사용하면 커널 구현에서 각 I/O 작업에서 오버헤드를 방지한 후에 한 번만 유효성 검사 및 내부 매핑을 수행할 수 있습니다. 제출 큐의 후속 항목은 배열에 정수 인덱스를 사용하여 이 함수에 등록된 버퍼를 참조할 수 있습니다. 이전 등록이 있는 경우 이전 등록이 완전히 바뀝니다. 주소가 NULL이고 길이가 0인 배열의 모든 항목은 스파스 항목이며 사용되지 않습니다. 이렇게 하면 이전에 등록된 버퍼 중 하나 이상을 해제할 수 있습니다.
요구 사항
| 요구 사항 | 가치 |
|---|---|
| 지원되는 최소 클라이언트 | Windows 빌드 22000 |
| 지원되는 최소 서버 | Windows 빌드 22000 |
| Header | ioringapi.h |
| Library | kernel32. Lib |