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 |
---|---|
|
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. |
|
Indica que todas as solicitações de leitura anteriores devem ser concluídas antes que o hardware comece a processar essa solicitação. |
|
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. |
|
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. |
|
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 |
---|---|
|
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. |
|
O QP (par de filas) não está conectado. |
|
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. |
|
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
Esquema de processamento adiado do NDKPI
Requisitos de postagem de solicitação de trabalho do NDKPI