Funzione NetDmaRegisterProvider (netdma.h)
in Windows 8 e versioni successive.
Sintassi
NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
[in] PVOID ProviderContext,
[in] PVOID *pNetDmaProviderHandle,
[in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);
Parametri
[in] ProviderContext
Puntatore a un blocco di informazioni sul contesto allocato dal driver che archivia informazioni sul provider DMA. NetDMA passa le informazioni di contesto nelle chiamate successive a Providerfunzioni Xxx che richiedevano un contesto del provider DMA.
[in] pNetDmaProviderHandle
Puntatore a un valore che è un handle che NetDmaRegisterProvider fornisce per identificare il provider DMA. Il driver del provider DMA passa questo handle a funzioni NetDmaXxx che richiedono un handle del provider.
[in] ProviderCharacteristics
Puntatore a un NET_DMA_PROVIDER_CHARACTERISTICS struttura che definisce le caratteristiche del provider DMA.
Valore restituito
NetDmaRegisterProvider può restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Operazione completata correttamente. |
|
L'operazione non è riuscita a causa di risorse insufficienti. |
|
L'operazione non è riuscita per motivi non specificati. |
Osservazioni
I driver del provider DMA chiamano la funzione netDmaRegisterProvider per registrare un provider DMA. I driver del provider DMA chiamano NetDmaRegisterProvider nella routine AddDevice.
Nella routine AddDevice, il driver del provider DMA chiama la funzione IoCreateDevice per creare un oggetto dispositivo funzionale (FDO) e lo inserisce nella parte superiore dello stack di dispositivi. Il driver del provider DMA chiama quindi NetDmaRegisterProvider per registrare il provider DMA associato.
Il driver del provider DMA fornisce un NET_DMA_PROVIDER_CHARACTERISTICS struttura nel parametro ProviderCharacteristics di NetDmaRegisterProvider. La struttura NET_DMA_PROVIDER_CHARACTERISTICS specifica le caratteristiche per un provider NetDMA, inclusi i punti di ingresso per le funzioni ProviderXxx.
Il driver del provider DMA fornisce un puntatore a un blocco di informazioni sul contesto allocato dal driver nel parametro ProviderContext di NetDmaRegisterProvider. Questa area di contesto archivia informazioni sul provider DMA. L'interfaccia NetDMA passa le informazioni di contesto nelle chiamate successive a Funzioni ProviderXxx che richiedono un contesto del provider DMA.
Quando restituisce NetDmaRegisterProvider, fornisce un handle nella posizione specificata dal parametro pNetDmaProviderHandle. L'interfaccia NetDMA assegna questo handle per identificare il provider DMA. Il driver del provider DMA usa questo handle in tutte le chiamate successive a NetDmaxxx funzioni associate al provider DMA.
Se un computer supporta MSI-X, l'interfaccia NetDMA, mentre nel contesto della funzione NetDmaRegisterProvider, chiama il driver del provider DMA ProviderSetDmaChannelCpuAffinity funzione per specificare l'affinità CPU dell'interrupt per ogni canale DMA.
Se un computer supporta MSI-X, il driver del provider DMA può specificare affinità di interruzione durante la gestione di IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Al termine della routine AddDevice, il gestore Plug and Play (PnP) invia il IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP per il provider DMA. Il driver del provider DMA deve tentare di allocare MSI-X risorse interrupt in base ai parametri di affinità passati dall'interfaccia NetDMA a providerSetDmaChannelCpuAffinity.
Per annullare la registrazione di un provider DMA, un driver del provider DMA chiama funzione di NetDmaDeregisterProvider.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato per i driver NetDMA 1.0 in Windows Vista. |
piattaforma di destinazione | Universale |
intestazione | netdma.h (include Netdma.h) |
IRQL | PASSIVE_LEVEL |