Partager via


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.

Remarque Vous devez déclarer la fonction à l’aide du type MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE. Pour plus d’informations, consultez la section Exemples suivants.
 

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

Voir aussi

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma