Compartir a través de


Función NdisAllocateBufferPool (ndis.h)

Nota NDIS 5. x está en desuso y se sustituye por NDIS 6. x. Para el nuevo desarrollo de controladores NDIS, consulte Controladores de red a partir de Windows Vista. Para obtener información sobre cómo migrar NDIS 5. Controladores x a NDIS 6. x, consulte Migración de controladores NDIS 5.x a NDIS 6.0.

Esta función devuelve un identificador con el que el autor de la llamada puede asignar descriptores de búfer llamando a la función NdisAllocateBuffer .

Sintaxis

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

Parámetros

[out] Status

Puntero a una variable proporcionada por el autor de la llamada en la que esta función devuelve el estado final de la asignación del grupo de búferes.

[out] PoolHandle

Puntero a una variable proporcionada por el autor de la llamada en la que esta función devuelve un identificador al grupo de búferes. Este identificador es un parámetro necesario para las funciones de búfer NDIS a las que llama el controlador posteriormente.

[in] NumberOfDescriptors

Especifica el número de descriptores de búfer que el autor de la llamada espera asignar desde el grupo de búferes sin liberar los descriptores de búfer asignados al grupo.

Valor devuelto

None

Observaciones

Siempre devuelve NDIS_STATUS_SUCCESS.

Una vez que se devuelve esta función, el controlador llama a la función NdisAllocateBuffer una o varias veces para asignar los descriptores de búfer que requiere. Un controlador debe llamar a esta función durante la inicialización.

El parámetro NumberOfDescriptors especificado por un controlador NIC normalmente depende de las características de la NIC. Por ejemplo, el controlador de una NIC DMA maestra de bus con búferes de anillo especificaría al menos un numberOfDescriptors lo suficientemente grande como para asignar el anillo completo.

Los numberOfDescriptors especificados en la llamada a esta función son el límite efectivo en el número de veces que el controlador puede llamar a NdisAllocateBuffer antes de que deba llamar a la función NdisFreeBuffer para devolver un descriptor de búfer a la lista libre del grupo de búferes.

Cuando un controlador ya no necesita el grupo de búferes que asignó, llama a la función NdisFreeBufferPool para liberar el identificador del grupo de búferes.

El controlador debe liberar cualquier bloqueo de número que esté manteniendo antes de llamar a esta función.

Todos los controladores NDIS de nivel inferior deben asignar todos los descriptores de búfer que encadenan a los paquetes de un grupo de búferes. Solo se pueden asignar descriptores dependientes del sistema operativo a los controladores de protocolo de nivel superior intervalos de memoria virtual. Si estos descriptores de memoria son equivalentes a los descriptores de búfer NDIS, un protocolo de nivel superior puede pasar estos descriptores como parámetros a las funciones NDIS.

Versiones del sistema operativo: Windows CE .NET 4.0 y versiones posteriores.

Requisitos

Requisito Valor
Header ndis.h
IRQL IRQL <= DISPATCH_LEVEL

Consulte también