PFREE_MAP_REGISTERS Rückruffunktion (wdm.h)
Die FreeMapRegisters-Routine gibt eine Reihe von Kartenregistern frei, die aus einem Aufruf von AllocateAdapterChannel gespeichert wurden.
Syntax
PFREE_MAP_REGISTERS PfreeMapRegisters;
void PfreeMapRegisters(
[in] PDMA_ADAPTER DmaAdapter,
[in] PVOID MapRegisterBase,
[in] ULONG NumberOfMapRegisters
)
{...}
Parameter
[in] DmaAdapter
Zeiger auf die DMA_ADAPTER Struktur, die von IoGetDmaAdapter zurückgegeben wird und den Bus-master-Adapter oder DMA-Controller darstellt.
[in] MapRegisterBase
Gibt die Zuordnungsregister an, die für den DMA-Vorgang zugewiesen sind. Das System übergibt diesen Wert an die AdapterControl-Routine des Treibers.
[in] NumberOfMapRegisters
Gibt die Anzahl der Kartenregister an, die freigegeben werden sollen. Dieser Wert muss mit der Nummer übereinstimmen, die in einem früheren Aufruf von AllocateAdapterChannel angegeben wurde.
Rückgabewert
Keine
Bemerkungen
FreeMapRegisters ist keine Systemroutine, die direkt mit dem Namen aufgerufen werden kann. Diese Routine kann nur über den Zeiger von der Adresse aufgerufen werden, die in einer DMA_OPERATIONS-Struktur zurückgegeben wird. Treiber erhalten die Adresse dieser Routine, indem sie IoGetDmaAdapter aufrufen.
Wenn der Treiber eines Bus-master-Geräts die aktuelle paketbasierte DMA-Übertragungsanforderung abgeschlossen hat, ruft er FreeMapRegisters auf, um die Kartenregister freizugeben, die zuvor durch einen Aufruf von AllocateAdapterChannel zugewiesen und beibehalten wurden, da die AdapterControl-RoutineDeallocateObjectKeepRegisters zurückgegeben hat. Der Treiber muss FreeMapRegisters aufrufen, nachdem FlushAdapterBuffers aufgerufen wurde.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Desktop |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | DISPATCH_LEVEL |
DDI-Complianceregeln | IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm) |