Función NdisAllocateNetBuffer (ndis/nblapi.h)
Llame a la función NdisAllocateNetBuffer para asignar e inicializar una estructura de NET_BUFFER desde un grupo de NET_BUFFER estructura.
Sintaxis
NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBuffer(
[in] NDIS_HANDLE PoolHandle,
[in, optional] MDL *MdlChain,
[in] ULONG DataOffset,
[in] SIZE_T DataLength
);
Parámetros
[in] PoolHandle
Identificador de grupo de NET_BUFFER estructura que se devolvió anteriormente de una llamada a NdisAllocateNetBufferPool.
[in, optional] MdlChain
Puntero a una cadena MDL que NDIS usa para inicializar la nueva estructura de NET_BUFFER. mdlChain puede ser NULL.
[in] DataOffset
Desplazamiento inicial, en bytes, desde el inicio del búfer hasta el inicio del espacio de datos usado en la cadena MDL. El espacio de datos delante de este desplazamiento es espacio de datos sin usar. Por lo tanto, este valor también representa la cantidad inicial de espacio de reposición disponible en la cadena MDL. Si mdlChain es null, DataOffset debe ser 0.
[in] DataLength
Longitud del espacio de datos usado, en bytes, en la cadena MDL. Si mdlChain de es null, DataLength debe ser 0.
Valor devuelto
NdisAllocateNetBuffer 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
Llame a NdisFreeNetBuffer para liberar una estructura de NET_BUFFER asignada desde un grupo de NET_BUFFER estructura.
Por ejemplo, si la cadena MDL original contiene XDataLength y YDataOffsety CurrentMdl comienza con el segundo MDL (M) en la cadena MDL original, CurrentMdlOffset es Z. A continuación, el campo mdlChain de en NET_BUFFER_DATA debe apuntar a una nueva cadena MDL que contiene DataLength y Y'DataOffset. Si CurrentMdl comienza con el tercer MDL (M') en la nueva cadena MDL, CurrentMdlOffset es Z', y las macros siguientes deben usarse para establecer campos en NET_BUFFER:
NET_BUFFER_FIRST_MDL(_NB) = New MDL chain;
NET_BUFFER_DATA_LENGTH(_NB) = X';
NET_BUFFER_DATA_OFFSET(_NB) = Y';
NET_BUFFER_CURRENT_MDL(_NB) = M';
NET_BUFFER_CURRENT_MDL_OFFSET(_NB) = Z';
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), NdisAllocateNetBuffer(ndis) |