Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die meisten Treiber von DMA-Geräten verfügen über eine AdapterControl-Routine , die für das Initiieren von DMA-Vorgängen verantwortlich ist. (Treiber, die keine AdapterControl-Routinen erfordern, umfassen solche, die scatter/gather DMA verwenden, und solche, die common-buffer, bus-master DMA verwenden.)
Wenn ein Treiber AllocateAdapterChannel aufruft, wird die AdapterControl-Routine sofort ausgeführt, wenn der DMA-Controller des Systems oder der Bus-master-Adapter für einen DMA-Vorgang verfügbar ist und genügend Kartenregister verfügbar sind. Andernfalls wird die AdapterControl-Routine in die Warteschlange gestellt, bis diese Ressourcen verfügbar sind.
Wenn die AdapterControl-Routine des Treibers KeepObject oder DeallocateObjectKeepRegisters zurückgibt (wodurch der DMA-Controllerkanal des Systems oder der Bus-master-Adapter für zusätzliche Übertragungsvorgänge beibehalten wird), ist die DpcForIsr- oder CustomDpc-Routine des Treibers für die Freigabe des Adapterobjekts oder der Kartenregister durch Aufrufen von FreeAdapterChannel oder FreeMapRegisters verantwortlich. bevor die DPC-Routine den aktuellen IRP abschließt und die Steuerung zurückgibt.