Функция BuildIoRingRegisterBuffers (ioringapi.h)
Регистрирует массив буферов в системе для будущих операций ввода-вывода.
Синтаксис
HRESULT BuildIoRingRegisterBuffers(
HIORING ioRing,
UINT32 count,
IORING_BUFFER_INFO const [] buffers,
UINT_PTR userData
);
Параметры
ioRing
HIORING, представляющий дескриптор для круга ввода-вывода, для которого регистрируются буферы.
count
Объект UINT32, указывающий количество буферов, указанных в параметре buffers .
buffers
Массив IORING_BUFFER_INFO структур, представляющих регистримые буферы.
userData
Значение UINT_PTR, определяющее операцию регистрации. Укажите это значение при отмене операции с вызовом BuildIoRingCancelRequest. Если приложение реализует поведение отмены для операции, значение userData должно быть уникальным. В противном случае значение рассматривается системой как непрозрачное и может быть любым, включая 0.
Возвращаемое значение
Возвращает HRESULT, включая, помимо прочего, следующее:
Значение | Описание: |
---|---|
S_OK | Успешное завершение |
IORING_E_SUBMISSION_QUEUE_FULL | Очередь отправки заполнена, и дополнительные записи для сборки недоступны. Приложение должно отправить существующие записи и дождаться завершения некоторых из них перед добавлением дополнительных операций в очередь. |
IORING_E_UNKNOWN_REQUIRED_FLAG | Приложение предоставило обязательный флаг, который не известен реализации. Код библиотеки должен проверка поле IoRingVersionIORING_INFO, полученного из вызова GetIoRingInfo для определения версии API круга ввода-вывода, определяющего поддерживаемые операции и флаги. Приложения должны знать версию, используемую для создания круга ввода-вывода, и поэтому не должны предоставлять неподдерживаемые флаги во время выполнения. |
Комментарии
Эта функция позволяет реализации ядра выполнять проверку и внутреннее сопоставление только один раз, чтобы избежать накладных расходов на каждую операцию ввода-вывода. Последующие записи в очереди отправки могут ссылаться на буферы, зарегистрированные с помощью этой функции, используя целочисленный индекс в массиве. Если предыдущая регистрация существует, она полностью заменяет предыдущую регистрацию. Все записи в массиве с адресом NULL и длиной 0 являются разреженными и не используются. Это позволяет освободить один или несколько ранее зарегистрированных буферов.
Требования
Минимальная версия клиента | Сборка Windows 22000 |
Минимальная версия сервера | Сборка Windows 22000 |
Верхняя часть | ioringapi.h |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по