Funzione AtaPortGetUnCachedExtension (irb.h)
La routine AtaPortGetUncachedExtension alloca un buffer comune non memorizzato nella cache condiviso dalla CPU e dal dispositivo.
Sintassi
PVOID AtaPortGetUnCachedExtension(
[in] PVOID ChannelExtension,
[in] ULONG UncachedExtensionSize,
[in] ULONG IrbExtensionSize
);
Parametri
[in] ChannelExtension
Puntatore all'estensione del canale.
[in] UncachedExtensionSize
Specifica la lunghezza, in byte, del buffer comune non memorizzato nella cache. Impostare questo parametro su 0 se il driver miniport non richiede un'estensione non memorizzata nella cache.
[in] IrbExtensionSize
Specifica le dimensioni, in byte, richieste dal driver miniport per ogni risorsa di archiviazione richiesta, se presenti.
Impostare questo parametro su 0 se il driver miniport non mantiene le informazioni per IRB per cui richiede l'archiviazione.
Valore restituito
AtaPortGetUncachedExtension restituisce un puntatore di indirizzo virtuale all'estensione non memorizzata nella cache. Se non è in grado di allocare la memoria richiesta o se la memoria è stata allocata in precedenza, restituisce NULL.
Osservazioni
Il driver miniport può usare le estensioni IRB come risorsa di archiviazione per informazioni specifiche del driver, ad esempio i dati necessari per elaborare una determinata richiesta.
Il driver di porta non inizializza le estensioni IRB, ma imposta un puntatore a un'estensione in ogni IRB inviato al driver miniport.
L'hardware HBA può accedere in modo sicuro a un'estensione IRB.
Il driver miniport non deve chiamare AtaPortGetUncachedExtension da qualsiasi routine diversa dalla routine IdeHwControl e solo quando elabora un'azione di controllo di StartChannel. Le chiamate di AtaPortGetUncachedExtension da altre routine del driver miniport generano un'operazione errata o persino un errore di sistema. Il driver della porta libera automaticamente l'estensione non memorizzata nella cache dopo aver richiamato IdeHwControl con l'azione di controllo StopChannel.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | irb.h (include Ata.h, Irb.h) |
libreria | Ataport.lib; Pciidex.lib |