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 le Fonction NdisMAllocateSharedMemoryAsyncEx .

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

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 à 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 a la valeur NULL si la tentative d’allocation a échoué.

[in] PhysicalAddress

Adresse physique de base que la carte réseau doit utiliser et qui est mappée à l’adresse spécifiée par le paramètre VirtualAddress .

[in] Length

Nombre d’octets alloués par NdisMAllocateSharedMemoryAsyncEx .

[in] Context

Pointeur vers une zone de contexte spécifiée par le pilote miniport dans l’appel précédent à NdisMAllocateSharedMemoryAsyncEx.

Valeur de retour

None

Remarques

MiniportAllocateSharedMemoryComplete est une fonction facultative pour les pilotes miniport. Un pilote miniport enregistre une fonction MiniportAllocateSharedMemoryComplete dans la structure de NDIS_SG_DMA_DESCRIPTION que le pilote a transmise au Fonction NdisMRegisterScatterGatherDma .

Appel de pilotes miniports NdisMAllocateSharedMemoryAsyncEx pour allouer de la mémoire partagée. Si NdisMAllocateSharedMemoryAsyncEx retourne NDIS_STATUS_PENDING, NDIS appelle MiniportAllocateSharedMemoryComplete pour passer la mémoire au pilote miniport.

NDIS appelle MiniportSharedMemoryAllocateComplete au PASSIVE_LEVEL IRQL.

Exemples

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 fonction permet à l’analyse du code pour les pilotes, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification de trouver les erreurs, et il s’agit d’une exigence pour l’écriture de 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 lors de l’exécution des 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 Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Windows
En-tête ndis.h (inclure Ndis.h)
IRQL PASSIVE_LEVEL

Voir aussi

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma