Función NetDmaRegisterProvider (netdma.h)
en Windows 8 y versiones posteriores.
Sintaxis
NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
[in] PVOID ProviderContext,
[in] PVOID *pNetDmaProviderHandle,
[in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);
Parámetros
[in] ProviderContext
Puntero a un bloque de información de contexto asignada por el controlador que almacena información sobre el proveedor DMA. NetDMA pasa la información de contexto en llamadas posteriores a las funciones ProviderXxx que requerían un contexto de proveedor DMA.
[in] pNetDmaProviderHandle
Puntero a un valor que es un identificador que NetDmaRegisterProvider proporciona para identificar el proveedor DMA. El controlador del proveedor DMA pasa este identificador a las funciones De NetDmaXxx que requieren un identificador de proveedor.
[in] ProviderCharacteristics
Puntero a NET_DMA_PROVIDER_CHARACTERISTICS estructura que define las características del proveedor DMA.
Valor devuelto
NetDmaRegisterProvider puede devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
La operación se ha completado correctamente. |
|
Error en la operación debido a recursos insuficientes. |
|
Error en la operación por motivos no especificados. |
Comentarios
Los controladores del proveedor DMA llaman a la función NetDmaRegisterProvider para registrar un proveedor DMA. Los controladores del proveedor DMA llaman a NetDmaRegisterProvider en su rutina AddDevice .
En la rutina AddDevice , el controlador del proveedor DMA llama a la función IoCreateDevice para crear un objeto de dispositivo funcional (FDO) e insertarlo en la parte superior de la pila de dispositivos. A continuación, el controlador del proveedor DMA llama a NetDmaRegisterProvider para registrar el proveedor DMA asociado.
El controlador del proveedor DMA proporciona un NET_DMA_PROVIDER_CHARACTERISTICS estructura en el parámetro ProviderCharacteristics de NetDmaRegisterProvider. La estructura NET_DMA_PROVIDER_CHARACTERISTICS especifica las características de un proveedor NetDMA, incluidos los puntos de entrada de las funciones ProviderXxx .
El controlador del proveedor DMA proporciona un puntero a un bloque de información de contexto asignada por el controlador en el parámetro ProviderContext de NetDmaRegisterProvider. Este área de contexto almacena información sobre el proveedor DMA. La interfaz NetDMA pasa la información de contexto en llamadas posteriores a funciones ProviderXxx que requieren un contexto de proveedor DMA.
Cuando NetDmaRegisterProvider devuelve, proporciona un identificador en la ubicación que especifica el parámetro pNetDmaProviderHandle . La interfaz NetDMA asigna este identificador para identificar el proveedor DMA. El controlador del proveedor DMA usa este identificador en todas las llamadas posteriores a funciones De NetDmaXxx asociadas al proveedor DMA.
Si un equipo admite MSI-X, la interfaz NetDMA, mientras que en el contexto de la función NetDmaRegisterProvider , llama al controlador del proveedor DMA. Función ProviderSetDmaChannelCpuAffinity para especificar la afinidad de CPU de la interrupción para cada canal DMA.
Si un equipo admite MSI-X, el controlador del proveedor DMA puede especificar afinidades de interrupción al controlar el IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Después de que la rutina AddDevice se devuelva correctamente, el administrador de Plug and Play (PnP) envía el IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP para el proveedor DMA. El controlador del proveedor DMA debe intentar asignar recursos de interrupción MSI-X según los parámetros de afinidad que la interfaz netDMA pasó a ProviderSetDmaChannelCpuAffinity.
Para anular el registro de un proveedor DMA, un controlador de proveedor DMA llama al Función NetDmaDeregisterProvider .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con controladores netDMA 1.0 en Windows Vista. |
Plataforma de destino | Universal |
Encabezado | netdma.h (incluir Netdma.h) |
IRQL | PASSIVE_LEVEL |