Compartilhar via


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

A função NdkBind (NDK_FN_BIND) associa uma janela de memória a uma sub-região específica de uma mr (região de memória).

Sintaxe

NDK_FN_BIND NdkFnBind;

NTSTATUS NdkFnBind(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
  [in]           NDK_MR *pMr,
  [in]           NDK_MW *pMw,
  [in]           PVOID VirtualAddress,
  [in]           SIZE_T Length,
  [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.

[in] pMr

Um ponteiro para um objeto MR (região de memória NDK) (NDK_MR).

[in] pMw

Um ponteiro para um objeto MW (janela de memória NDK) (NDK_MW).

[in] VirtualAddress

Um endereço virtual que deve ser maior ou igual ao endereço virtual do MDL para o MR e menor que o endereço virtual do MDL para o MR mais o valor no parâmetro Length .

Use a macro MmGetMdlVirtualAddress para obter o endereço virtual do MDL para o MR.

[in] Length

O comprimento do MR a ser associado ao MW.

[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 uma conclusão 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_ALLOW_REMOTE_READ
0x00000008
Habilite o acesso de leitura à janela de memória para qualquer par conectado. Para acessar a janela de memória, os pares conectados devem ter um token válido.
NDK_OP_FLAG_ALLOW_REMOTE_WRITE
0x00000030
Habilite o acesso de gravação à janela de memória para qualquer par conectado. Para acessar a janela de memória, os pares conectados devem ter um token válido.
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 NdkBind 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 (par de filas) não está conectado.
STATUS_ACCESS_VIOLATION
A região de memória não permite o tipo de acesso solicitado para a janela de memória. O sinalizador NDK_OP_FLAG_ALLOW_WRITE requer uma região de memória registrada com o sinalizador NDK_MR_FLAG_ALLOW_LOCAL_WRITE.
Outros códigos status
Ocorreu um erro.

Comentários

NdkBind associa uma janela de memória (MW) a uma sub-região específica de uma mr (região de memória).

O endereço no parâmetro VirtualAddress deve ser um endereço dentro da região virtualmente contígua descrita pela cadeia de MDL especificada durante o registro de memória. O endereço deve ser tratado pelo provedor como um índice na região de memória. O endereço não deve ser usado pelo provedor como um endereço virtual válido para ler ou gravar conteúdo do buffer.

Depois que essa chamada retornar, o token remoto estará disponível com a função NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW).

Essa função não dá suporte a um endereço virtual baseado em zero.

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

MmGetMdlVirtualAddress

Esquema de processamento adiado do NDKPI

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

NDK_FN_GET_REMOTE_TOKEN_FROM_MW

NDK_MR

NDK_MW

NDK_QP

NDK_RESULT