Función NdisAllocateNetBufferMdlAndData (ndis/nblapi.h)
Los controladores NDIS llaman a la función NdisAllocateNetBufferMdlAndData para asignar una estructura de NET_BUFFER junto con la MDL y los datos asociados.
Sintaxis
NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
[in] NDIS_HANDLE PoolHandle
);
Parámetros
[in] PoolHandle
Identificador de grupo de estructura NET_BUFFER que se devolvió anteriormente desde una llamada a la función NdisAllocateNetBufferPool .
Valor devuelto
NdisAllocateNetBufferMdlAndData devuelve un puntero a la estructura NET_BUFFER asignada por NDIS. Si la asignación no se realizó correctamente, este puntero es NULL.
Comentarios
El llamador debe llamar a la función NdisAllocateNetBufferPool y especificar el tamaño máximo de los búferes de datos. Dado este valor, NDIS puede asignar previamente búferes para el autor de la llamada.
Esta función asigna una estructura NET_BUFFER , MDL y datos en un solo búfer de memoria. Esto resulta útil para lograr un alto rendimiento cuando las estructuras de NET_BUFFER se asignan y liberan con frecuencia. El autor de la llamada no debe llamar a NdisAllocateNetBuffer para asignar NET_BUFFERs fuera de NET_BUFFER grupos que contienen datos.
NDIS usa el parámetro PoolHandle para obtener un bloque de memoria y, a continuación, crea el NET_BUFFER, MDL y el búfer de datos.
Para liberar el NET_BUFFER e información asociada, llame a la función NdisFreeNetBuffer .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | ndis/nblapi.h (include ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis) |