Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 de buffers .
buffers
Uma matriz de estruturas IORING_BUFFER_INFO que representam os buffers a serem registrados.
userData
Um valor UINT_PTR identificando 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 de retorno
Retorna um HRESULT incluindo, mas não limitado ao seguinte:
| Value | Description |
|---|---|
| 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 necessário que não é conhecido pela implementação. O código da biblioteca deve verificar 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 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 no runtime. |
Observações
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 nulo e um comprimento de 0 são entradas esparsas e não são usadas. Isso permite que você libere um ou mais buffers registrados anteriormente.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows Build 22000 |
| Servidor mínimo compatível | Windows Build 22000 |
| Header | ioringapi.h |
| Library | kernel32. Lib |