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 |