Função NetDmaRegisterProvider (netdma.h)
em Windows 8 e posteriores.
Sintaxe
NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
[in] PVOID ProviderContext,
[in] PVOID *pNetDmaProviderHandle,
[in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);
Parâmetros
[in] ProviderContext
Um ponteiro para um bloco de informações de contexto alocadas pelo driver que armazena informações sobre o provedor de DMA. O NetDMA passa as informações de contexto em chamadas subsequentes para funções do ProvedorXxx que exigiam um contexto de provedor de DMA.
[in] pNetDmaProviderHandle
Um ponteiro para um valor que é um identificador que NetDmaRegisterProvider fornece para identificar o provedor de DMA. O driver do provedor de DMA passa esse identificador para funções NetDmaXxx que exigem um identificador de provedor.
[in] ProviderCharacteristics
Um ponteiro para um NET_DMA_PROVIDER_CHARACTERISTICS estrutura que define as características do provedor de DMA.
Retornar valor
NetDmaRegisterProvider pode retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
A operação foi concluída com sucesso. |
|
A operação falhou devido a recursos insuficientes. |
|
A operação falhou por motivos não especificados. |
Comentários
Os drivers de provedor de DMA chamam a função NetDmaRegisterProvider para registrar um provedor de DMA. Os drivers de provedor de DMA chamam NetDmaRegisterProvider em sua rotina AddDevice .
Na rotina AddDevice , o driver do provedor de DMA chama a função IoCreateDevice para criar um FDO (objeto de dispositivo funcional) e insere-o na parte superior da pilha do dispositivo. Em seguida, o driver do provedor de DMA chama NetDmaRegisterProvider para registrar o provedor de DMA associado.
O driver do provedor de DMA fornece um NET_DMA_PROVIDER_CHARACTERISTICS estrutura no parâmetro ProviderCharacteristics de NetDmaRegisterProvider. A estrutura NET_DMA_PROVIDER_CHARACTERISTICS especifica as características de um provedor NetDMA, incluindo os pontos de entrada para as funções ProviderXxx .
O driver do provedor de DMA fornece um ponteiro para um bloco de informações de contexto alocadas pelo driver no parâmetro ProviderContext de NetDmaRegisterProvider. Essa área de contexto armazena informações sobre o provedor de DMA. A interface NetDMA passa as informações de contexto em chamadas subsequentes para funções ProviderXxx que exigem um contexto de provedor DMA.
Quando NetDmaRegisterProvider retorna, ele fornece um identificador no local especificado pelo parâmetro pNetDmaProviderHandle . A interface NetDMA atribui esse identificador para identificar o provedor de DMA. O driver do provedor de DMA usa esse identificador em todas as chamadas subsequentes para funções NetDmaXxx associadas ao provedor de DMA.
Se um computador der suporte a MSI-X, a interface NetDMA, enquanto estiver no contexto da função NetDmaRegisterProvider , chamará o driver do provedor de DMA Função ProviderSetDmaChannelCpuAffinity para especificar a afinidade da CPU da interrupção para cada canal DMA.
Se um computador der suporte ao MSI-X, o driver do provedor de DMA poderá especificar afinidades de interrupção durante a manipulação do IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Depois que a rotina AddDevice retorna com êxito, o gerenciador de Plug and Play (PnP) envia o IRP IRP_MN_FILTER_RESOURCE_REQUIREMENTS para o provedor de DMA. O driver do provedor de DMA deve tentar alocar recursos de interrupção MSI-X de acordo com os parâmetros de afinidade que a interface NetDMA passou para ProviderSetDmaChannelCpuAffinity.
Para desregistrar um provedor de DMA, um driver de provedor de DMA chama oFunção NetDmaDeregisterProvider.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte para drivers NetDMA 1.0 no Windows Vista. |
Plataforma de Destino | Universal |
Cabeçalho | netdma.h (inclua Netdma.h) |
IRQL | PASSIVE_LEVEL |