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 que o driver de miniporto iniciou chamando o Função NdisMAllocateSharedMemoryAsyncEx .

Nota 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 no 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 para a NIC usar que é mapeado para o endereço que o parâmetro VirtualAddress especifica.

[in] Length

O número de bytes alocados por NdisMAllocateSharedMemoryAsyncEx .

[in] Context

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

Retornar valor

Nenhum

Comentários

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

Chamada de drivers de miniporta NdisMAllocateSharedMemoryAsyncEx para alocar memória compartilhada. Se NdisMAllocateSharedMemoryAsyncEx retornar NDIS_STATUS_PENDING, o NDIS chamará MiniportAllocateSharedMemoryComplete para passar a memória para o driver de miniport.

O NDIS chama MiniportSharedMemoryAllocateComplete no PASSIVE_LEVEL IRQL.

Exemplos

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 a 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 escrever 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
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL PASSIVE_LEVEL

Confira também

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma