Partager via


NdisAllocateSharedMemory, fonction (ndis.h)

La fonction NdisAllocateSharedMemory alloue la mémoire partagée à partir d’un fournisseur de mémoire partagée.

Syntaxe

NDIS_STATUS NdisAllocateSharedMemory(
  [in]      NDIS_HANDLE                    NdisHandle,
  [in]      PNDIS_SHARED_MEMORY_PARAMETERS SharedMemoryParameters,
  [in, out] PNDIS_HANDLE                   pAllocationHandle
);

Paramètres

[in] NdisHandle

Un pilote NDIS ou un instance handle obtenu lors de l’initialisation de l’appelant. Par exemple, un pilote miniport peut utiliser le handle NDIS qu’il a obtenu à partir du Fonction NdisMRegisterMiniportDriver ou MiniportInitializeEx . D’autres pilotes NDIS peuvent utiliser les handles des fonctions suivantes :

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

Pointeur vers un NDIS_SHARED_MEMORY_PARAMETERS structure qui définit les attributs demandés pour la mémoire partagée.

[in, out] pAllocationHandle

Pointeur vers un emplacement pour un handle qui identifie la mémoire partagée allouée. Le handle est disponible lorsque la fonction retourne ou est NULL si la fonction échoue. L’appelant doit utiliser ce handle pour libérer la mémoire partagée qui a été allouée avec succès.

Valeur retournée

NdisAllocateSharedMemory peut retourner les valeurs status suivantes :

Code de retour Description
NDIS_STATUS_SUCCESS
L’opération s’est terminée avec succès.
NDIS_STATUS_RESOURCES
L’opération a échoué, car il n’y avait pas de ressources suffisantes pour terminer l’opération.
NDIS_STATUS_INVALID_PARAMETER
L’opération a échoué en raison d’un paramètre d’entrée non valide.
NDIS_STATUS_FAILURE
L’opération a échoué pour des raisons non spécifiées.

Remarques

Note Un pilote miniport doit déjà avoir appelé NdisMRegisterScatterGatherDma ou NdisMRegisterDmaChannel pour initialiser un canal DMA de diffusion/collecte avant d’appeler NdisAllocateSharedMemory.
 
Les pilotes NDIS appellent la fonction NdisAllocateSharedMemory pour allouer un bloc de mémoire partagée à partir d’un fournisseur de mémoire partagée NDIS.

Le paramètre SharedMemoryParameters contient un pointeur vers un NDIS_SHARED_MEMORY_PARAMETERS structure qui définit les attributs demandés pour la mémoire partagée. Si l’indicateur NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS n’est pas défini dans le membre Indicateurs , la mémoire partagée peut être spécifiée dans une liste de regroupement de points contenue dans la mémoire non contiguë.

NDIS appelle la fonction NetAllocateSharedMemory d’un fournisseur de mémoire partagée à partir du contexte de l’appel à NdisAllocateSharedMemory.

Le pilote doit appeler la fonction NdisFreeSharedMemory pour libérer la mémoire partagée qu’il alloue avec NdisAllocateSharedMemory.

Configuration requise

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

Voir aussi

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory