Compartir a través de


Función NdisAllocateSharedMemory (ndis.h)

La función NdisAllocateSharedMemory asigna memoria compartida desde un proveedor de memoria compartida.

Sintaxis

NDIS_STATUS NdisAllocateSharedMemory(
  [in]      NDIS_HANDLE                    NdisHandle,
  [in]      PNDIS_SHARED_MEMORY_PARAMETERS SharedMemoryParameters,
  [in, out] PNDIS_HANDLE                   pAllocationHandle
);

Parámetros

[in] NdisHandle

Controlador o controlador NDIS que se obtuvo durante la inicialización del autor de la llamada. Por ejemplo, un controlador de minipuerto puede usar el identificador NDIS que obtuvo del Función NdisMRegisterMiniportDriver o MiniportInitializeEx . Otros controladores NDIS pueden usar los identificadores de las siguientes funciones:

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

Puntero a un NDIS_SHARED_MEMORY_PARAMETERS estructura que define los atributos solicitados para la memoria compartida.

[in, out] pAllocationHandle

Puntero a una ubicación para un identificador que identifica la memoria compartida que se asignó. El identificador está disponible cuando la función devuelve o es NULL si se produce un error en la función. El autor de la llamada debe usar este identificador para liberar la memoria compartida que se asignó correctamente.

Valor devuelto

NdisAllocateSharedMemory puede devolver los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
La operación se ha completado correctamente.
NDIS_STATUS_RESOURCES
Error en la operación porque no había recursos suficientes para completar la operación.
NDIS_STATUS_INVALID_PARAMETER
Error en la operación debido a un parámetro de entrada no válido.
NDIS_STATUS_FAILURE
Error en la operación por motivos no especificados.

Comentarios

Nota Un controlador de minipuerto debe haber llamado ya NdisMRegisterScatterGatherDma o NdisMRegisterDmaChannel para inicializar un canal DMA de dispersión o recopilación antes de llamar a NdisAllocateSharedMemory.
 
Los controladores NDIS llaman a la función NdisAllocateSharedMemory para asignar un bloque de memoria compartida desde un proveedor de memoria compartida de NDIS.

El parámetro SharedMemoryParameters contiene un puntero a un NDIS_SHARED_MEMORY_PARAMETERS estructura que define los atributos solicitados para la memoria compartida. Si la marca NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS no está establecida en el miembro Flags , la memoria compartida se puede especificar en una lista de recopilación de dispersión contenida en memoria no contigua.

NDIS llama a la función NetAllocateSharedMemory de un proveedor de memoria compartida desde el contexto de la llamada a NdisAllocateSharedMemory.

El controlador debe llamar a la función NdisFreeSharedMemory para liberar la memoria compartida que asigna con NdisAllocateSharedMemory.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.20 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL

Consulte también

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory