Compartilhar via


Função BuildIoRingCancelRequest (ioringapi.h)

Tenta cancelar uma operação de anel de E/S enviada anteriormente.

Sintaxe

HRESULT BuildIoRingCancelRequest(
  HIORING           ioRing,
  IORING_HANDLE_REF file,
  UINT_PTR          opToCancel,
  UINT_PTR          userData
);

Parâmetros

ioRing

Um HIORING que representa um identificador para o anel de E/S para o qual um cancelamento é solicitado.

file

Um IORING_HANDLE_REF que representa o arquivo associado à operação a ser cancelada.

opToCancel

Um UINT_PTR especificando a operação a ser cancelada. Esse valor é o mesmo valor fornecido no parâmetro userData quando a operação foi registrada. Para dar suporte ao cancelamento, o valor userData deve ser exclusivo para cada operação.

userData

Um valor UINT_PTR que identifica a operação de cancelamento. 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

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 necessário que não é conhecido pela implementação. O código de 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 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.

Comentários

Como as operações de anel de E/S são executadas de forma assíncrona, essa chamada de função é apenas uma solicitação de cancelamento. A operação especificada pode ser concluída antes que o cancelamento seja processado. A operação de cancelamento pode ser concluída após a conclusão da operação que está sendo cancelada. A conclusão da operação de cancelamento não depende da conclusão real das operações de E/S que ela cancela. Os aplicativos devem procurar a conclusão da operação original na fila de conclusão chamando PopIoRingCompletion para observar o status final da operação. A operação pode ter sido concluída com êxito ou com um erro em vez de ser cancelada pela chamada para essa função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Build 22000
Servidor mínimo com suporte Windows Build 22000
Cabeçalho ioringapi.h