Función BuildIoRingRegisterBuffers (ioringapi.h)

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

Sintaxis

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:

Valor Descripción
S_OK Correcto
IORING_E_SUBMISSION_QUEUE_FULL La cola de envío está llena y no hay entradas adicionales disponibles para la compilación. La aplicación debe enviar las entradas existentes y esperar a que algunas de ellas 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.

Comentarios

Esta función permite que la implementación del kernel realice 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 de 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

   
Cliente mínimo compatible Compilación 22000 de Windows
Servidor mínimo compatible Compilación 22000 de Windows
Encabezado ioringapi.h