WdfDmaEnablerConfigureSystemProfile-Funktion (wdfdmaenabler.h)

[Gilt nur für KMDF]

Die WdfDmaEnablerConfigureSystemProfile-Methode konfiguriert die hardwarespezifischen Einstellungen für eine DMA-Aktivierung im Systemmodus und schließt die Ressourceninitialisierung ab.

Syntax

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

Parameter

[in] DmaEnabler

Ein Handle für ein DMA-Enabler-Objekt.

[in] ProfileConfig

Ein Zeiger auf eine WDF_DMA_SYSTEM_PROFILE_CONFIG-Struktur . Treiber müssen diese Struktur initialisieren, indem sie WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT aufrufen.

[in] ConfigDirection

Ein WDF_DMA_DIRECTION typisierter Wert, der die Richtung des DMA-Übertragungsvorgangs angibt. Wenn der WDF_DMA_PROFILE Wert für diesen Enabler nicht WdfDmaProfileSystemDuplex ist, ignoriert das Framework diesen Parameter.

Rückgabewert

WdfDmaEnablerConfigureSystemProfile gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die -Methode möglicherweise einen der folgenden Werte zurück.

Rückgabecode Beschreibung
STATUS_NOT_SUPPORTED
Der Treiber hat eine DMA-Konfiguration angefordert, die vom aktuellen Betriebssystem nicht unterstützt wird.
STATUS_INVALID_PARAMETER
Der Treiber hat null im Parameter ProfileConfig angegeben.
STATUS_INFO_LENGTH_MISMATCH
Der Size-Member der Struktur, auf die vom Parameter ProfileConfig verwiesen wird, ist nicht gleich der Größe der WDF_DMA_SYSTEM_PROFILE_CONFIG-Struktur .
STATUS_INVALID_PARAMETER
Der DmaDescriptor-Member der Struktur, auf die der ProfileConfig-Parameter verweist, ist NULL, oder der ConfigDirection-Parameter enthält einen ungültigen Wert.

Hinweise

Vor dem Aufrufen von WdfDmaEnablerConfigureSystemProfile muss der Treiber WdfDmaEnablerCreate aufrufen, um das Enabler-Objekt zu erstellen.

Ein Treiber ruft in der Regel WdfDmaEnablerConfigureSystemProfile über seine EvtDevicePrepareHardware-Rückruffunktion auf.

Wenn Ihr Treiber beim Aufrufen von WdfDmaEnablerCreate ein Duplexprofil angegeben hat, muss der Wert des ConfigDirection-Parameters der WdfDmaEnablerConfigureSystemProfile-MethodeWdfDmaDirectionReadFromDevice lauten, um die DMA_ADAPTER-Struktur für Lesevorgänge abzurufen, und WdfDmaDirectionWriteToDevice, um die DMA_ADAPTER-Struktur für Schreibvorgänge abzurufen.

Wenn der DMA-Enabler ein Duplex-Enabler ist, muss der Treiber eine bestimmte Richtung initialisieren, bevor er sie verwenden kann.

Wenn Ihr Treiber kein Duplexprofil angegeben hat, kann der Treiber entweder WdfDmaDirectionReadFromDevice oder WdfDmaDirectionWriteToDevice angeben.

Beispiele

Das folgende Codebeispiel stammt aus der EvtDevicePrepareHardware-Rückruffunktion eines Treibers. In diesem Beispiel wird eine WDF_DMA_SYSTEM_PROFILE_CONFIG-Struktur initialisiert und WdfDmaEnablerConfigureSystemProfile aufgerufen.


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Zielplattform Universell
KMDF-Mindestversion 1.11
Kopfzeile wdfdmaenabler.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerErstellen