Freigeben über


AtaPortGetUnCachedExtension-Funktion (irb.h)

Die AtaPortGetUncachedExtension-Routine weist einen nicht zwischengespeicherten gemeinsamen Puffer zu, der von der CPU und dem Gerät gemeinsam genutzt wird.

Hinweis Die Modelle ATA-Porttreiber und ATA-Miniporttreiber können in Zukunft geändert oder nicht mehr verfügbar sein. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

Syntax

PVOID AtaPortGetUnCachedExtension(
  [in] PVOID ChannelExtension,
  [in] ULONG UncachedExtensionSize,
  [in] ULONG IrbExtensionSize
);

Parameter

[in] ChannelExtension

Ein Zeiger auf die Kanalerweiterung.

[in] UncachedExtensionSize

Gibt die Länge des nicht zwischengespeicherten allgemeinen Puffers in Bytes an. Legen Sie diesen Parameter auf 0 fest, wenn der Miniporttreiber keine nicht zwischengespeicherte Erweiterung erfordert.

[in] IrbExtensionSize

Gibt die Größe (in Bytes) an, die vom Miniporttreiber für den Jeweiligen Anforderungsspeicher (falls vorhanden) benötigt wird.

Legen Sie diesen Parameter auf 0 fest, wenn der Miniporttreiber nicht die IRB-Informationen verwaltet, für die er Speicher benötigt.

Rückgabewert

AtaPortGetUncachedExtension gibt einen virtuellen Adresszeiger auf die nicht zwischengespeicherte Erweiterung zurück. Wenn der angeforderte Arbeitsspeicher nicht zugeordnet werden kann oder der Arbeitsspeicher zuvor zugewiesen wurde, wird NULL zurückgegeben.

Hinweise

Der Miniporttreiber kann IRB-Erweiterungen als Speicher für treiberbestimmte, anforderungsspezifische Informationen verwenden, z. B. Daten, die für die Verarbeitung einer bestimmten Anforderung erforderlich sind.

Der Porttreiber initialisiert keine IRB-Erweiterungen, sondern legt einen Zeiger auf eine Erweiterung in jedem IRB fest, den er an den Miniporttreiber sendet.

HBA-Hardware kann sicher auf eine IRB-Erweiterung zugreifen.

Der Miniporttreiber darf AtaPortGetUncachedExtension nicht aus einer anderen Routine als seiner IdeHwControl-Routine aufrufen, und nur dann, wenn er eine Steuerungsaktion von StartChannel verarbeitet. Aufrufe von AtaPortGetUncachedExtension von anderen Miniporttreiberroutinen führen zu einem falschen Betrieb oder sogar zu Systemfehlern. Der Porttreiber gibt die nicht zwischengespeicherte Erweiterung automatisch frei, nachdem er IdeHwControl mit der StopChannel-Steuerelementaktion aufgerufen hat.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile irb.h (include Ata.h, Irb.h)
Bibliothek Ataport.lib; Pciidex.lib

Weitere Informationen

IdeHwControl