Função BuildIoRingRegisterBuffers (ioringapi.h)
Registra uma matriz de buffers com o sistema para futuras operações de anel de E/S.
Sintaxe
HRESULT BuildIoRingRegisterBuffers(
HIORING ioRing,
UINT32 count,
IORING_BUFFER_INFO const [] buffers,
UINT_PTR userData
);
Parâmetros
ioRing
Um HIORING que representa um identificador para o anel de E/S para o qual os buffers são registrados.
count
Um UINT32 que especifica o número de buffers fornecidos no parâmetro buffers .
buffers
Uma matriz de estruturas IORING_BUFFER_INFO que representam os buffers a serem registrados.
userData
Um valor UINT_PTR que identifica a operação de registro. Especifique esse valor ao cancelar a operação com uma chamada para BuildIoRingCancelRequest. Se um aplicativo implementar o comportamento de cancelamento para a operação, o valor userData deverá ser exclusivo. Caso contrário, o valor é tratado como opaco pelo sistema e pode ser qualquer coisa, incluindo 0.
Valor retornado
Retorna um HRESULT incluindo, mas não se limitando ao seguinte:
Valor | Descrição |
---|---|
S_OK | Êxito |
IORING_E_SUBMISSION_QUEUE_FULL | A fila de envio está cheia e nenhuma entrada adicional está disponível para compilação. O aplicativo deve enviar as entradas existentes e aguardar a conclusão de algumas delas antes de adicionar mais operações à fila. |
IORING_E_UNKNOWN_REQUIRED_FLAG | O aplicativo forneceu um sinalizador obrigatório que não é conhecido pela implementação. O código da biblioteca deve marcar o campo IoRingVersion do IORING_INFO obtido de uma chamada para GetIoRingInfo para determinar a versão da API de um anel de E/S que determina as operações e os sinalizadores com suporte. Os aplicativos devem saber a versão usada para criar o anel de E/S e, portanto, não devem fornecer sinalizadores sem suporte em runtime. |
Comentários
Essa função permite que a implementação do kernel execute a validação e o mapeamento interno apenas uma vez, evitando a sobrecarga em cada operação de E/S. As entradas subsequentes na fila de envio podem se referir aos buffers registrados com essa função usando um índice inteiro na matriz. Se houver um registro anterior, isso substituirá completamente o registro anterior. Todas as entradas na matriz com um Endereço de NULL e um Comprimento de 0 são entradas esparsas e não são usadas. Isso permite que você libere um ou mais dos buffers registrados anteriormente.
Requisitos
Cliente mínimo com suporte | Windows Build 22000 |
Servidor mínimo com suporte | Windows Build 22000 |
Cabeçalho | ioringapi.h |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de