Compartir a través de


Función BuildIoRingRegisterBuffers (ioringapi.h)

Registra una matriz de búferes con el sistema para futuras operaciones de anillo de E/S.

Syntax

HRESULT BuildIoRingRegisterBuffers(
  HIORING                     ioRing,
  UINT32                      count,
  IORING_BUFFER_INFO const [] buffers,
  UINT_PTR                    userData
);

Parámetros

ioRing

HIORING que representa un identificador del anillo de E/S para el que se registran los búferes.

count

UINT32 que especifica el número de búferes proporcionados en el parámetro buffers .

buffers

Matriz de IORING_BUFFER_INFO estructuras que representan los búferes que se van a registrar.

userData

Valor de UINT_PTR que identifica la operación de registro. Especifique este valor al cancelar la operación con una llamada a BuildIoRingCancelRequest. Si una aplicación implementa el comportamiento de cancelación para la operación, el valor userData debe ser único. De lo contrario, el sistema trata el valor como opaco y puede ser cualquier cosa, incluido 0.

Valor devuelto

Devuelve un VALOR HRESULT, incluido, pero no limitado a lo siguiente:

Importancia Description
S_OK Success
IORING_E_SUBMISSION_QUEUE_FULL La cola de envío está llena y no hay entradas adicionales disponibles para compilar. La aplicación debe enviar las entradas existentes y esperar a que algunos de ellos se completen antes de agregar más operaciones a la cola.
IORING_E_UNKNOWN_REQUIRED_FLAG La aplicación proporcionó una marca necesaria que no se conoce para la implementación. El código de biblioteca debe comprobar el campo IoRingVersion del IORING_INFO obtenido de una llamada a GetIoRingInfo para determinar la versión de API de un anillo de E/S que determina las operaciones y las marcas que se admiten. Las aplicaciones deben conocer la versión que usaron para crear el anillo de E/S y, por lo tanto, no deben proporcionar marcas no admitidas en tiempo de ejecución.

Observaciones

Esta función permite a la implementación del kernel realizar la validación y la asignación interna una vez evitando la sobrecarga en cada operación de E/S. Las entradas posteriores de la cola de envío pueden hacer referencia a los búferes registrados con esta función mediante un índice entero en la matriz. Si existe un registro anterior, esto reemplaza el registro anterior por completo. Las entradas de la matriz con una dirección NULL y una longitud de 0 son entradas dispersas y no se usan. Esto le permite liberar uno o varios de los búferes registrados anteriormente.

Requisitos

Requirement Importancia
Cliente mínimo compatible Windows Build 22000
Servidor mínimo admitido Windows Build 22000
Header ioringapi.h
Library kernel32. Lib