GET_DMA_ADAPTER Rückruffunktion (wdm.h)
Die GetDmaAdapter-Routine gibt eine DMA_ADAPTER-Struktur für das Zielgerät zurück.
Syntax
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
Parameter
[in] Context
Ein Zeiger auf schnittstellenspezifische Kontextinformationen. Der Aufrufer übergibt den Wert, der als Kontextelement der BUS_INTERFACE_STANDARD-Struktur für die Schnittstelle übergeben wird.
[in] DeviceDescriptor
Ein Zeiger auf eine DEVICE_DESCRIPTION Struktur, die die Attribute des physischen Geräts beschreibt.
[out] NumberOfMapRegisters
Ein Zeiger auf die maximale Anzahl von Zuordnungsregistern, die der Treiber für jeden DMA-Übertragungsvorgang zuordnen kann. Der Aufrufer muss eine LONG-Variable zuordnen, um diese Daten zu empfangen.
Rückgabewert
Die GetDmaAdapter-Routine gibt bei erfolgreicher Ausführung einen Zeiger auf eine DMA_ADAPTER-Struktur zurück. Wenn eine Adapterstruktur nicht zugeordnet werden kann, gibt die Routine NULL zurück.
Hinweise
Wenn der Treiber unter IRQL = PASSIVE_LEVEL ausgeführt wird, sollte er das DMA-Adapterobjekt eines Geräts durch Aufrufen der IoGetDmaAdapter-Funktion abrufen. IoGetDmaAdapter erkennt, ob der Bustreiber die BUS_INTERFACE_STANDARD-Schnittstelle unterstützt. Wenn dies der Fall ist, ruft IoGetDmaAdapter die Routine auf, auf die der GetDmaAdapter-Member dieser Schnittstelle verweist, um das Adapterobjekt abzurufen. Andernfalls ruft IoGetDmaAdapter eine entsprechende Legacyroutine auf.
Wenn ein Treiber jedoch während der Ausführung am IRQL-≥ DISPATCH_LEVEL ein Adapterobjekt abrufen muss, kann er dies nicht mit der IoGetDmaAdapter-Funktion tun. In diesem Fall muss der Treiber die BUS_INTERFACE_STANDARD-Schnittstelle abfragen, während er noch irQL = PASSIVE_LEVEL ist, indem er eine IRP_MN_QUERY_INTERFACE-Anforderung ausgibt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Desktop |
Kopfzeile | wdm.h (include Ntddk.h, Wdm.h) |
IRQL | PASSIVE_LEVEL |