Partager via


Fonction StorPortAllocatePool (storport.h)

La routine StorPortAllocatePool alloue un bloc de mémoire de pool non contiguë et non paginée.

Syntaxe

ULONG StorPortAllocatePool(
  [in]  PVOID HwDeviceExtension,
  [in]  ULONG NumberOfBytes,
  [in]  ULONG Tag,
  [out] PVOID *BufferPointer
);

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension de périphérique matériel pour l’adaptateur de bus hôte (HBA).

[in] NumberOfBytes

Taille, en octets, du bloc de mémoire alloué.

[in] Tag

Balise de pool pour la mémoire allouée. Les pilotes spécifient la balise de pool sous la forme d’une chaîne de quatre caractères ASCII, délimités par des guillemets uniques. La chaîne est généralement spécifiée dans l’ordre inverse.

[out] BufferPointer

Pointeur vers l’adresse du bloc de mémoire alloué ou NULL en cas de non-réussite.

Valeur retournée

StorPortAllocatePool retourne l’un des codes status suivants :

Code de retour Description
STOR_STATUS_NOT_IMPLEMENTED Cette fonction n’est pas implémentée sur le système d’exploitation actif.
STOR_STATUS_SUCCESS Indique que la routine a correctement alloué un bloc de mémoire de la taille demandée.
STOR_STATUS_INVALID_PARAMETER Le pointeur pour recevoir l’adresse de mémoire tampon est NULL.
STOR_STATUS_INVALID_IRQL L’appel a été effectué à un IRQL non valide.
STOR_STATUS_INSUFFICIENT_RESOURCES Impossible d’allouer de la mémoire de la taille demandée.

Remarques

Un pilote miniport appelle la routine StorPortAllocatePool pour allouer un bloc de mémoire non contiguë à partir du pool non paginé. Pour libérer le bloc de mémoire, le pilote miniport appelle StorPortFreePool. Si la demande échoue, BufferPointer est défini sur NULL.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI StorPortAllocatePool(storport), StorPortAllocatePool2(storport), StorPortIrql(storport)

Voir aussi

StorPortFreePool