NDK_FN_SEND função de retorno de chamada (ndkpi.h)
A função NdkSend (NDK_FN_SEND) posta uma solicitação de envio em um QP (par de filas) NDK.
Sintaxe
NDK_FN_SEND NdkFnSend;
NTSTATUS NdkFnSend(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags
)
{...}
Parâmetros
[in] pNdkQp
Um ponteiro para um objeto de QP (par de filas) 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 que contêm os dados a serem enviados.
[in] nSge
O número de estruturas SGE na matriz especificada no parâmetro pSgl .
[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 um evento 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. |
|
Indica que a fila de conclusão para o par gera uma notificação. Para obter mais informações sobre NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, consulte a seção Comentários. |
|
Indica que a memória referenciada pelos SGEs deve ser transferida embutida. Além disso, o valor MemoryRegionToken nas entradas NDK_SGE pode ser inválido. As solicitações embutidas não precisam limitar o número de entradas na lista SGE ao valor MaxInitiatorRequestSge especificado quando o par de filas foi criado. A quantidade de memória transferida embutida deve estar dentro dos limites de dados embutidos do par de filas. |
|
Indica ao provedor NDK que ele pode adiar indicando a solicitação de 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 NdkSend retorna um dos seguintes códigos NTSTATUS.
Código de retorno | Descrição |
---|---|
|
A solicitação de envio foi postada com êxito. Uma entrada de conclusão será enfileirada na fila de conclusão (CQ) quando a solicitação de trabalho for concluída. |
|
O QP (par de filas) não está conectado. |
|
Ocorreu um erro. |
Comentários
NdkSend posta uma solicitação de envio em um QP (par de filas).
Você pode usar o sinalizador NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT se emitir várias solicitações de envio relacionadas. Defina esse sinalizador na última solicitação no grupo de solicitações de envio relacionadas.
Um consumidor do NDK pode usar esse sinalizador ao emitir várias solicitações de envio relacionadas. O consumidor do NDK define esse sinalizador somente na última solicitação de envio relacionada. O par receberá todas as solicitações de envio normalmente. No entanto, quando o par recebe a última solicitação de envio (a solicitação com o sinalizador NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT definido), a fila de conclusão para o par gera uma notificação. A notificação é gerada após a conclusão da solicitação de recebimento. Esse sinalizador não tem significado para o receptor (par), a menos que o receptor tenha chamado anteriormente a função NdkArmCq (NDK_FN_ARM_CQ) com o tipo de notificação definido como NDK_CQ_NOTIFY_SOLICITED.
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