Compartilhar via


função de retorno de chamada NDK_FN_READ (ndkpi.h)

A função NdkRead (NDK_FN_READ) posta uma solicitação de leitura em um QP (par de filas NDK).

Sintaxe

NDK_FN_READ NdkFnRead;

NTSTATUS NdkFnRead(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           UINT64 RemoteAddress,
  [in]           UINT32 RemoteToken,
  [in]           ULONG Flags
)
{...}

Parâmetros

[in] pNdkQp

Um ponteiro para um objeto QP (par de fila) NDK (NDK_QP).

[in, optional] RequestContext

Um valor de contexto a ser retornado no membro RequestContext da estrutura NDK_RESULT para essa solicitação.

pSgl

Uma matriz de estruturas SGE (NDK_SGE) que representam os buffers nos quais colocar os dados de entrada.

[in] nSge

O número de estruturas SGE na matriz especificada no parâmetro pSgl .

[in] RemoteAddress

Um endereço remoto a ser lido é apresentado na ordem de bytes do host local. O consumidor do NDK pode adicionar um deslocamento ao valor fornecido remotamente.

[in] RemoteToken

Um token de memória fornecido remotamente que é uma matriz opaca de bytes do consumidor NDK.

[in] Flags

Um OR bit a bit de sinalizadores que especifica as operações permitidas. Há suporte para os seguintes sinalizadores:

Valor Significado
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Indica que a conclusão bem-sucedida dessa solicitação não gera um evento de conclusão na fila de conclusão de saída. No entanto, as solicitações que falham geram um evento na fila de conclusão.
NDK_OP_FLAG_READ_FENCE
0x00000002
Indica que todas as solicitações de leitura anteriores devem ser concluídas antes que o hardware comece a processar essa solicitação.
NDK_OP_FLAG_RDMA_READ_LOCAL_INVALIDATE
0x00000200
Se esse sinalizador for definido e o provedor também relatar NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED capacidade do adaptador na estrutura NDK_ADAPTER_INFO , a conclusão bem-sucedida da função NdkRead significa que o primeiro buffer especificado no parâmetro pSgl é invalidado. A conclusão malsucedida deixa o buffer e o token em um estado indefinido. Esse sinalizador será ignorado se o provedor não relatar NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED capacidade do adaptador na estrutura NDK_ADAPTER_INFO .

Nota Esse sinalizador tem suporte apenas no NDKPI 1.2 (Windows Server 2012 R2) e posterior.

NDK_OP_FLAG_DEFER
0x00000200
Indica ao provedor NDK que ele pode adiar indicando a solicitação ao hardware para processamento. Para obter mais informações sobre esse sinalizador, consulte Esquema de processamento adiado do NDKPI.

Nota Esse sinalizador tem suporte apenas no NDKPI 1.2 (Windows Server 2012 R2) e posterior.

Retornar valor

A função NdkRead retorna um dos seguintes códigos NTSTATUS.

Código de retorno Descrição
STATUS_SUCCESS
A solicitação foi postada com êxito. Uma entrada de conclusão será enfileirada no CQ quando a solicitação de trabalho for concluída.
STATUS_CONNECTION_INVALID
O QP não está conectado.
STATUS_REMOTE_RESOURCES
A solicitação tentou ler além do tamanho da memória remota.
Outros códigos status
Ocorreu um erro.

Comentários

O NdkRead posta uma solicitação de leitura em um QP (par de filas).

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum com suporte, com suporte no NDIS 6.30 e posterior.
Servidor mínimo com suporte Windows Server 2012
Plataforma de Destino Windows
Cabeçalho ndkpi.h (inclua Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Confira também

Esquema de processamento adiado do NDKPI

Requisitos de postagem de solicitação de trabalho do NDKPI

NDK_ADAPTER_INFO

NDK_FN_ARM_CQ

NDK_QP

NDK_RESULT

NDK_SGE