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 .

Requisitos

Requisito Valor
Header ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Consulte también