NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION função de retorno de chamada (ndkpi.h)
A função NdkControlCqInterruptModeration (NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION) controla a moderação de interrupção em uma CQ (fila de conclusão do NDK).
Para obter mais informações sobre a moderação de interrupção, consulte de moderação de interrupção.
Sintaxe
NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION NdkFnControlCqInterruptModeration;
NTSTATUS NdkFnControlCqInterruptModeration(
[in] NDK_CQ *pNdkCq,
[in] ULONG ModerationInterval,
[in] ULONG ModerationCount
)
{...}
Parâmetros
[in] pNdkCq
Um ponteiro para um objeto de fila de conclusão do NDK (NDK_CQ).
[in] ModerationInterval
O número máximo de microssegundos que um provedor pode adiar a interrupção da CPU do host após uma conclusão colocada no CQ atende a uma solicitação de braço. Se O Desinterval for zero, o provedor não executará nenhuma moderação de interrupção no CQ, independentemente do valor do parâmetro ModerationCount. Se o ModerationInterval for MAXULONG, o ModerationCount controlará a moderação de interrupção no CQ. Se ModerationInterval for maior que o intervalo de moderação máximo compatível com o adaptador ou se a granularidade do temporizador do adaptador for maior, o provedor poderá arredondar o valor do intervalo.
[in] ModerationCount
O número máximo de conclusões que um provedor pode acumular no CQ antes de interromper a CPU do host para atender a uma solicitação do braço do CQ. Se o Do ModerationInterval for zero ou um, o provedor não executará nenhuma moderação de interrupção no CQ, independentemente do valor do parâmetro ModerationInterval. Se ModerationCount for MAXULONG ou maior que a profundidade do CQ, ModerationInterval controlará a moderação de interrupção no CQ.
Valor de retorno
A função NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION retorna um dos seguintes códigos NTSTATUS.
Código de retorno | Descrição |
---|---|
|
A operação foi concluída com êxito. |
|
A solicitação falhou devido a recursos insuficientes. |
|
O provedor NDK não dá suporte ao controle de moderação de interrupção de CQ com NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION. Um provedor que define o sinalizador NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORT no membro AdapterFlags da estrutura NDK_ADAPTER_INFO não deve retornar esse código de status. |
|
O consumidor do NDK forneceu um MAXULONG para ModeraçãoInterval e MAXULONG ou um valor maior que o número de entradas de conclusão que o CQ pode conter para O ModerationCount ao mesmo tempo. |
|
Ocorreu um erro. |
Observações
Os consumidores do NDK não devem chamar NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION a menos que o provedor defina o sinalizador de NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED no membro adapterFlags da estrutura NDK_ADAPTER_INFO. Para um provedor que define o sinalizador NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED, o consumidor do NDK pode chamar essa função a qualquer momento após a criação de um CQ. O comportamento padrão de um CQ não é a moderação de interrupção. O consumidor do NDK não deve chamar essa função no mesmo CQ simultaneamente.
O consumidor do NDK não deve especificar um MAXULONG para o DeSvalorInterval e MAXULONG ou um valor maior do que o número de entradas de conclusão que o CQ pode conter (CqDepth ) para o ModerationCount ao mesmo tempo. Caso contrário, o provedor retornará STATUS_INVALID_PARAMETER_MIX.
O consumidor do NDK pode chamar NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION várias vezes. Um provedor pode não aplicar as configurações antes de retornar dessa função. No entanto, o provedor não deve atrasar a aplicação das configurações indefinidamente. Se o consumidor emitir outra chamada para essa função enquanto o provedor ainda não tiver aplicado as configurações de uma invocação anterior da função, o provedor deverá tornar as configurações fornecidas mais recentemente efetivas o mais rápido possível. Ou seja, o provedor deve cancelar o aplicativo das configurações anteriores e aplicar as novas configurações ou aguardar a conclusão da aplicação das configurações anteriores e aplicar as novas configurações.
Provedores que indicam suporte para moderação de interrupção com o sinalizador de NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED normalmente devem lidar com NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION com êxito e retornar STATUS_SUCCESS. No entanto, um provedor pode falhar na solicitação devido a uma falta de recursos, como uma falha de alocação de memória. Nesse caso, o provedor deve retornar STATUS_INSUFFICIENT_RESOURCES. Os provedores não podem retornar STATUS_PENDING dessa função. Provedores que não indicam suporte para essa função com o sinalizador NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED ainda devem implementar essa função. Nesse caso, essa função deve retornar STATUS_NOT_SUPPORTED.
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 |