Función NdisAllocateNetBufferMdlAndData (ndis/nblapi.h)
Los controladores NDIS llaman a la función NdisAllocateNetBufferMdlAndData para asignar una estructura de NET_BUFFER junto con los datos y MDL asociados.
Sintaxis
NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
[in] NDIS_HANDLE PoolHandle
);
Parámetros
[in] PoolHandle
Identificador de grupo de NET_BUFFER estructura que se devolvió anteriormente desde una llamada a la función NdisAllocateNetBufferPool.
Valor devuelto
NdisAllocateNetBufferMdlAndData devuelve un puntero a la estructura de NET_BUFFER asignada por NDIS. Si la asignación no se realizó correctamente, este puntero es NULL.
Observaciones
El autor de la llamada 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 de NET_BUFFER, MDL y datos en un solo búfer de memoria. Esto resulta útil para lograr un alto rendimiento cuando NET_BUFFER estructuras se asignan y liberan con frecuencia. El autor de la llamada no debe llamar a NdisAllocateNetBuffer para asignar NET_BUFFERs de grupos de NET_BUFFER 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 y la información asociada, llame a la función NdisFreeNetBuffer.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Universal |
encabezado de | ndis/nblapi.h (incluya ndis.h) |
biblioteca de | Ndis.lib |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis) |