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) |