MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE fonction de rappel (ndis.h)
NDIS appelle la fonction MiniportSharedMemoryAllocateComplete d’un pilote miniport pour effectuer une demande d’allocation de mémoire partagée que le pilote miniport a démarré en appelant la fonction fonction NdisMAllocateSharedMemoryAsyncEx.
Syntaxe
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
)
{...}
Paramètres
[in] MiniportAdapterContext
Handle vers une zone de contexte allouée par le pilote miniport dans lequel le pilote conserve les informations d’état d’une carte réseau. Le pilote alloue cette zone de contexte dans le fonction MiniportInitializeEx.
[in] VirtualAddress
Adresse virtuelle de base de la mémoire partagée allouée par le pilote miniport en appelant NdisMAllocateSharedMemoryAsyncEx. VirtualAddress est NULL si la tentative d’allocation a échoué.
[in] PhysicalAddress
Adresse physique de base pour la carte réseau à utiliser qui est mappée à l’adresse spécifiée par le paramètre VirtualAddress.
[in] Length
Nombre d’octets qui NdisMAllocateSharedMemoryAsyncEx alloués.
[in] Context
Pointeur vers une zone de contexte que le pilote miniport spécifié dans l’appel précédent à NdisMAllocateSharedMemoryAsyncEx.
Valeur de retour
Aucun
Remarques
MiniportAllocateSharedMemoryComplete est une fonction facultative pour les pilotes miniport. Un pilote miniport inscrit une fonction MiniportAllocateSharedMemoryComplete dans la structure NDIS_SG_DMA_DESCRIPTION que le pilote a passée au fonction NdisMRegisterScatterGatherDma.
Appel des pilotes miniports NdisMAllocateSharedMemoryAsyncEx pour allouer de la mémoire partagée. Si NdisMAllocateSharedMemoryAsyncEx retourne NDIS_STATUS_PENDING, NDIS appelle MiniportAllocateSharedMemoryComplete pour transmettre la mémoire au pilote miniport.
NDIS appelle MiniportSharedMemoryAllocateComplete au PASSIVE_LEVEL IRQL.
exemples de
Pour définir une fonction MiniportSharedMemoryAllocateComplete, vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction que vous définissez. Windows fournit un ensemble de types de fonctions pour les pilotes. La déclaration d’une fonction à l’aide des types de fonctions permet d'Analyse du code pour les pilotes, de vérificateur de pilotes statiques (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des pilotes pour le système d’exploitation Windows.Par exemple, pour définir une fonction MiniportSharedMemoryAllocateComplete nommée « MySharedMemoryAllocateComplete », utilisez le type MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE comme indiqué dans cet exemple de code :
MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;
Ensuite, implémentez votre fonction comme suit :
_Use_decl_annotations_
VOID
MySharedMemoryAllocateComplete(
NDIS_HANDLE MiniportAdapterContext,
PVOID VirtualAddress,
PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
ULONG Length,
PVOID Context
)
{...}
Le type de fonction MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lorsque vous exécutez les outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes NDIS.
Pour plus d’informations sur Use_decl_annotations, consultez annoter le comportement de la fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.0 et versions ultérieures. |
plateforme cible | Windows |
d’en-tête | ndis.h (include Ndis.h) |
IRQL | PASSIVE_LEVEL |