Funzione NetDmaRegisterProvider (netdma.h)

Nota L'interfaccia NetDMA non è supportata

in Windows 8 e versioni successive.

 
La funzione NetDmaRegisterProvider registra un provider DMA.

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 alle funzioni ProviderXxx che richiedono un contesto del provider DMA.

[in] pNetDmaProviderHandle

Puntatore a un valore che rappresenta un handle fornito da NetDmaRegisterProvider per identificare il provider DMA. Il driver del provider DMA passa questo handle alle funzioni NetDmaXxx che richiedono un handle del provider.

[in] ProviderCharacteristics

Puntatore a NET_DMA_PROVIDER_CHARACTERISTICS struttura che definisce le caratteristiche del provider DMA.

Valore restituito

NetDmaRegisterProvider può restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
Operazione riuscita.
STATUS_RESOURCES
L'operazione non è riuscita a causa di risorse insufficienti.
STATUS_UNSUCCESSFUL
L'operazione non è riuscita per motivi non specificati.

Commenti

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 alle funzioni ProviderXxx che richiedono un contesto del provider DMA.

Quando NetDmaRegisterProvider restituisce, 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 alle funzioni NetDmaXxx 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 Funzione ProviderSetDmaChannelCpuAffinity per specificare l'affinità della CPU dell'interruzione per ogni canale DMA.

Se un computer supporta MSI-X, il driver del provider DMA può specificare affinità di interruzione durante la gestione IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Dopo aver restituito correttamente la 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 le risorse di interruzione MSI-X in base ai parametri di affinità passati all'interfaccia NetDMA passato a ProviderSetDmaChannelCpuAffinity.

Per annullare la registrazione di un provider DMA, un driver del provider DMA chiama Funzione NetDmaDeregisterProvider .

Requisiti

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

Vedi anche

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity