Compartilhar via


MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE função de retorno de chamada (ndis.h)

O NDIS chama a função MiniportSharedMemoryAllocateComplete de um driver de miniport para concluir uma solicitação de alocação de memória compartilhada iniciada pelo driver de miniporto chamando o função NdisMAllocateSharedMemoryAsyncEx.

Observação Você deve declarar a função usando o tipo MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE. Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MiniportAllocateSharedMemComplete;

void MiniportAllocateSharedMemComplete(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID VirtualAddress,
  [in] PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in] ULONG Length,
  [in] PVOID Context
)
{...}

Parâmetros

[in] MiniportAdapterContext

O identificador para uma área de contexto alocada pelo driver de miniporto no qual o driver mantém informações de estado para uma NIC. O driver aloca essa área de contexto na função MiniportInitializeEx.

[in] VirtualAddress

O endereço virtual base da memória compartilhada que o driver de miniporto alocou chamando NdisMAllocateSharedMemoryAsyncEx. virtualAddress será NULL se a tentativa de alocação falhar.

[in] PhysicalAddress

O endereço físico base da NIC a ser usado mapeado para o endereço que o parâmetro virtualAddress especifica.

[in] Length

O número de bytes que NdisMAllocateSharedMemoryAsyncEx alocado.

[in] Context

Um ponteiro para uma área de contexto que o driver de miniporto especificou na chamada anterior para NdisMAllocateSharedMemoryAsyncEx.

Valor de retorno

Nenhum

Observações

MiniportAllocateSharedMemoryComplete é uma função opcional para drivers de miniport. Um driver de miniporto registra uma função MiniportAllocateSharedMemoryComplete na estrutura NDIS_SG_DMA_DESCRIPTION que o driver passou para o função NdisMRegisterScatterGatherDma.

Chamada de drivers de miniporto NdisMAllocateSharedMemoryAsyncEx para alocar memória compartilhada. Se NdisMAllocateSharedMemoryAsyncEx retornar NDIS_STATUS_PENDING, as chamadas NDIS MiniportAllocateSharedMemoryComplete para passar a memória para o driver de miniport.

Chamadas NDIS MiniportSharedMemoryAllocateComplete no PASSIVE_LEVEL IRQL.

exemplos de

Para definir uma função MiniportSharedMemoryAllocateComplete, primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda Análise de Código para Drivers, SDV (Verificador de Driver Estático) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função MiniportSharedMemoryAllocateComplete chamada "MySharedMemoryAllocateComplete", use o tipo MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE conforme mostrado neste exemplo de código:

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
VOID
 MySharedMemoryAllocateComplete(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  VirtualAddress,
    PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
    ULONG  Length,
    PVOID  Context
    )
  {...}

O tipo de função MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da Plataforma de Destino Windows
cabeçalho ndis.h (inclua Ndis.h)
IRQL PASSIVE_LEVEL

Consulte também

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma