Compartilhar via


NDK_FN_READ função de retorno de chamada (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 filas NDK) (NDK_QP).

[in, optional] RequestContext

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

pSgl

Uma matriz de estruturas SGE (NDK_SGE) que representam os buffers nos quais os dados de entrada serão colocados.

[in] nSge

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

[in] RemoteAddress

Um endereço remoto a ser lido a partir do qual é 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 funcionalidade 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 será 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 de NDK_ADAPTER_INFO.

Observação 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 a indicação da solicitação ao hardware para processamento. Para obter mais informações sobre esse sinalizador, consulte esquema de processamento adiado do NDKPI.

Observação Esse sinalizador tem suporte apenas no NDKPI 1.2 (Windows Server 2012 R2) e posterior.

Valor de retorno

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 de status
Ocorreu um erro.

Observações

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

Requisitos

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

Consulte 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