Partager via


StorPortAllocateContiguousMemorySpecifyCacheNode, fonction (storport.h)

La routine StorPortAllocateContiguousMemorySpecifyCacheNode alloue une plage de mémoire non mise en cache, non mise en cache, non mise en cache physiquement contiguë.

Syntaxe

ULONG StorPortAllocateContiguousMemorySpecifyCacheNode(
  [in]           PVOID               HwDeviceExtension,
  [in]           SIZE_T              NumberOfBytes,
  [in]           PHYSICAL_ADDRESS    LowestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS    HighestAcceptableAddress,
  [in, optional] PHYSICAL_ADDRESS    BoundaryAddressMultiple,
  [in]           MEMORY_CACHING_TYPE CacheType,
  [in]           NODE_REQUIREMENT    PreferredNode,
  [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

Nombre d'octets à allouer.

[in] LowestAcceptableAddress

Adresse physique la plus basse valide pour l’allocation. Par exemple, si l’appareil ne peut référencer la mémoire physique que dans la plage de 8 Mo à 16 Mo, cette valeur est définie sur 0x800000 (8 Mo).

[in] HighestAcceptableAddress

Adresse physique la plus élevée valide pour l’allocation. Par exemple, si l’appareil peut uniquement référencer une mémoire physique inférieure à 16 Mo, cette valeur est définie sur 0xFFFFFF (16 Mo - 1).

[in, optional] BoundaryAddressMultiple

Adresse physique multiple que cette allocation ne doit pas croiser.

[in] CacheType

Type de cache souhaité pour le mappage.

[in] PreferredNode

Nœud préféré à partir duquel l’allocation doit être effectuée si des pages sont disponibles sur ce nœud.

[out] BufferPointer

Variable qui reçoit l’adresse de départ du bloc de mémoire alloué. Au retour de cette routine, si cette variable est égale à zéro, il est impossible de trouver une plage contiguë pour répondre à la demande. Si cette variable n’est pas NULL, elle contient un pointeur (par exemple, une adresse virtuelle dans la partie non pagée du système) vers la mémoire physiquement contiguë allouée.

Valeur retournée

La routine StorPortAllocateContiguousMemorySpecifyCacheNode 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
L'opération a réussi.
STOR_STATUS_INSUFFICIENT_RESOURCES
L’opération n’a pas pu allouer la mémoire demandée en raison de ressources insuffisantes.

Remarques

Si la demande échoue, BufferPointer est défini sur NULL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 7.
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI StorPortIrql(storport)