Freigeben über


StorPortAllocateDmaMemory-Funktion (storport.h)

Diese Funktion ist die erweiterte Version der StorPortAllocateContiguousMemorySpecifyCacheNode-Funktion. Es ordnet einen Bereich von physisch zusammenhängendem, nicht zwischengespeichertem, nicht ausgestelltem Arbeitsspeicher 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 Host Bus Adapter (HBA).

[in] NumberOfBytes

Die Anzahl der zu belegenden Bytes.

[in] LowestAcceptableAddress

Die niedrigste physische Adresse, die für die Zuordnung gültig ist. Wenn das Gerät beispielsweise nur auf physischen Arbeitsspeicher 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 Arbeitsspeicher unter 16 MB verweisen kann, wird dieser Wert auf 0xFFFFFF (16 MB - 1) festgelegt.

[in, optional] BoundaryAddressMultiple

Das physische Adressmultimal, das diese Zuordnung nicht überschreiten darf.

[in] CacheType

Der gewünschte Cachetyp für die Zuordnung.

[in] PreferredNode

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

[out] BufferPointer

Die Variable, die die Startadresse des zugeordneten Speicherblocks empfängt. Wenn diese Variable null ist, konnte nach der Rückkehr von dieser Routine kein zusammenhängender Bereich gefunden werden, um die Anforderung zu erfüllen. Wenn diese Variable nicht NULL ist, enthält sie einen Zeiger (z. B. eine virtuelle Adresse im nicht auslagerten Teil des Systems) auf den zugewiesenen physisch zusammenhängenden Arbeitsspeicher.

[out] PhysicalAddress

Physische Adresse des zugeordneten Speicherblocks.

Rückgabewert

Diese Funktion gibt einen STOR_STATUS Code zurück.

Rückgabecode Beschreibung
STOR_STATUS_NOT_IMPLEMENTED Diese Funktion ist auf dem aktiven Betriebssystem nicht implementiert.
STOR_STATUS_SUCCESS Der Vorgang wurde durchgeführt.
STOR_STATUS_INSUFFICIENT_RESOURCES Der Vorgang konnte den angeforderten Arbeitsspeicher aufgrund unzureichender Ressourcen nicht zuordnen.

Hinweise

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 (Version 1803)
Zielplattform Universell
Header storport.h
DDI-Complianceregeln StorPortIrql

Weitere Informationen

StorPortFreeDmaMemory