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 |