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 .
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 |