Función NdisAllocateBuffer (ndis.h)
Nota NDIS 5. x ha quedado 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. x controladores a NDIS 6. x, consulte Migración de controladores NDIS 5.x a NDIS 6.0.
NdisAllocateBuffer crea un descriptor de búfer que asigna un intervalo virtual (sub)especificado dentro de un bloque de memoria no paginado ya asignado.
Sintaxis
void NdisAllocateBuffer(
[out] PNDIS_STATUS Status,
[out] PNDIS_BUFFER *Buffer,
[in, optional] NDIS_HANDLE PoolHandle,
[in] PVOID VirtualAddress,
[in] UINT Length
);
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 búfer, que es NDIS_STATUS_SUCCESS si devolvió un puntero de descriptor de búfer válido en Buffer y, de lo contrario, NDIS_STATUS_FAILURE.
[out] Buffer
Puntero a una variable proporcionada por el autor de la llamada en la que esta función devuelve un puntero al descriptor de búfer asignado.
[in, optional] PoolHandle
Especifica el identificador devuelto por una llamada anterior a NdisAllocateBufferPool.
[in] VirtualAddress
Puntero a la dirección virtual base de la memoria de espacio del sistema asignada previamente que se va a asignar en el descriptor de búfer devuelto.
[in] Length
Especifica el número de bytes que se van a asignar.
Valor devuelto
None
Observaciones
Valor devuelto: None
NdisAllocateBuffer asigna almacenamiento para e inicializa un descriptor de búfer para asignar un intervalo especificado de memoria asignada previamente, como la memoria usada para un encabezado de paquete o un BÚFER de recepción de NIC.
La asignación de descriptores de búfer se dibuja en el grupo de búferes que crea NdisAllocateBufferPool . Un controlador puede llamar a NdisAllocateBuffer tantas veces como sea necesario para asignar los descriptores de búfer que requiere si llamó a NdisAllocateBufferPool durante la inicialización.
Todos los controladores NDIS de nivel inferior deben asignar todos los descriptores de búfer que encadenan a paquetes del grupo de búferes. Solo se pueden asignar descriptores dependientes del sistema operativo que asignan intervalos de memoria virtual y, si estos descriptores de memoria son equivalentes a descriptores de búfer NDIS, un protocolo de nivel superior puede pasar estos descriptores como parámetros a las funciones NdisXxx .
- Plataforma de destino: Universal
Requisitos
Requisito | Valor |
---|---|
Header | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | IRQL <= DISPATCH_LEVEL |