Função NdisAllocateSharedMemory (ndis.h)

A função NdisAllocateSharedMemory aloca memória compartilhada de um provedor de memória compartilhado.

Sintaxe

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

Parâmetros

[in] NdisHandle

Um identificador de instância ou driver NDIS que foi obtido durante a inicialização do chamador. Por exemplo, um driver de miniporto pode usar o identificador NDIS obtido do Função NdisMRegisterMiniportDriver ou MiniportInitializeEx . Outros drivers NDIS podem usar os identificadores das seguintes funções:

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

Um ponteiro para um NDIS_SHARED_MEMORY_PARAMETERS estrutura que define os atributos solicitados para a memória compartilhada.

[in, out] pAllocationHandle

Um ponteiro para um local para um identificador que identifica a memória compartilhada que foi alocada. O identificador estará disponível quando a função retornar ou for NULL se a função falhar. O chamador deve usar esse identificador para liberar a memória compartilhada alocada com êxito.

Retornar valor

NdisAllocateSharedMemory pode retornar os seguintes valores de status:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
A operação foi concluída com sucesso.
NDIS_STATUS_RESOURCES
A operação falhou porque não havia recursos suficientes para concluir a operação.
NDIS_STATUS_INVALID_PARAMETER
A operação falhou devido a um parâmetro de entrada inválido.
NDIS_STATUS_FAILURE
A operação falhou por motivos não especificados.

Comentários

Nota Um driver de miniporta já deve ter chamado NdisMRegisterScatterGatherDma ou NdisMRegisterDmaChannel para inicializar um canal DMA de dispersão/coleta antes de chamar NdisAllocateSharedMemory.
 
Os drivers NDIS chamam a função NdisAllocateSharedMemory para alocar um bloco de memória compartilhada de um provedor de memória compartilhada NDIS.

O parâmetro SharedMemoryParameters contém um ponteiro para um NDIS_SHARED_MEMORY_PARAMETERS estrutura que define os atributos solicitados para a memória compartilhada. Se o sinalizador NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS não estiver definido no membro Flags , a memória compartilhada poderá ser especificada em uma lista de dispersão que está contida na memória não contígua.

O NDIS chama a função NetAllocateSharedMemory de um provedor de memória compartilhado do contexto da chamada para NdisAllocateSharedMemory.

O driver deve chamar a função NdisFreeSharedMemory para liberar a memória compartilhada alocada com NdisAllocateSharedMemory.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.20 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL PASSIVE_LEVEL

Confira também

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory