Freigeben über


StorPortAllocateDmaMemory-Funktion (storport.h)

Diese Funktion ist die erweiterte Version der StorPortAllocateContiguousMemorySpecifyCacheNode-Funktion. Er weist einen Bereich von physisch zusammenhängendem nicht zwischengespeichertem, nicht seitengebundenem Speicher zu und gibt die physische Adresse des zugeordneten Puffers zurück.

Syntax

ULONG StorPortAllocateDmaMemory(
  [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,
  [out]          PPHYSICAL_ADDRESS   PhysicalAddress
);

Parameter

[in] HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung für den Hostbusadapter (HBA).

[in] NumberOfBytes

Die Anzahl der zuzuordnenden Bytes.

[in] LowestAcceptableAddress

Die niedrigste physische Adresse, die für die Zuordnung gültig ist. Wenn das Gerät beispielsweise nur auf physischen Speicher im Bereich von 8 MB bis 16 MB verweisen kann, wird dieser Wert auf 0x800000 (8 MB) festgelegt.

[in] HighestAcceptableAddress

Die höchste physische Adresse, die für die Zuordnung gültig ist. Wenn das Gerät beispielsweise nur auf physischen Speicher unter 16 MB verweisen kann, wird dieser Wert auf 0xFFFFFF (16 MB - 1) festgelegt.

[in, optional] BoundaryAddressMultiple

Die physische Adresse, die von dieser Zuordnung nicht überschritten werden darf.

[in] CacheType

Der gewünschte Cachetyp für die Zuordnung.

[in] PreferredNode

Der bevorzugte Knoten, aus dem die Zuordnung erfolgen soll, wenn Seiten auf diesem Knoten verfügbar sind.

[out] BufferPointer

Die Variable, die die Startadresse des zugewiesenen Speicherblocks empfängt. Wenn diese Variable null ist, wurde beim Zurückgeben dieser Routine kein zusammenhängender Bereich gefunden, um die Anforderung zu erfüllen. Wenn diese Variable nicht NULL ist, enthält sie einen Zeiger (z. B. eine virtuelle Adresse im nicht seitengebundenen Teil des Systems) auf den zugewiesenen physischen zusammenhängenden Speicher.

[out] PhysicalAddress

Physische Adresse des zugewiesenen Speicherblocks.

Rückgabewert

Diese Funktion gibt einen STOR_STATUS Code zurück.

Rückgabecode Beschreibung
STOR_STATUS_NOT_IMPLEMENTED Diese Funktion ist nicht auf dem aktiven Betriebssystem implementiert.
STOR_STATUS_SUCCESS Der Vorgang war erfolgreich.
STOR_STATUS_INSUFFICIENT_RESOURCES Der Vorgang konnte den angeforderten Speicher aufgrund unzureichender Ressourcen nicht zuordnen.

Bemerkungen

Wenn die Anforderung fehlschlägt, wird BufferPointer auf NULL festgelegt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10 (Version 1803)
Zielplattform- Universal
Header- storport.h
DDI-Complianceregeln StorPortIrql

Siehe auch

StorPortFreeDmaMemory