Condividi tramite


Funzione WdfDmaEnablerConfigureSystemProfile (wdfdmaenabler.h)

[Si applica solo a KMDF]

Il metodo WdfDmaEnablerConfigureSystemProfile configura le impostazioni specifiche dell'hardware per un abilitatore DMA in modalità sistema e completa l'inizializzazione della risorsa.

Sintassi

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

Parametri

[in] DmaEnabler

Handle a un oggetto enabler DMA.

[in] ProfileConfig

Puntatore a una struttura WDF_DMA_SYSTEM_PROFILE_CONFIG . I driver devono inizializzare questa struttura chiamando WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT.

[in] ConfigDirection

Valore WDF_DMA_DIRECTION tipizzato che specifica la direzione dell'operazione di trasferimento DMA. Se il valore WDF_DMA_PROFILE per questo abilitatore non è WdfDmaProfileSystemDuplex, il framework ignora questo parametro.

Valore restituito

WdfDmaEnablerConfigureSystemProfile restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire uno dei valori seguenti.

Codice restituito Descrizione
STATUS_NOT_SUPPORTED
Il driver ha richiesto una configurazione DMA non supportata nel sistema operativo corrente.
STATUS_INVALID_PARAMETER
Il driver fornito NULL nel parametro ProfileConfig .
STATUS_INFO_LENGTH_MISMATCH
Il membro Size della struttura a cui punta il parametro ProfileConfig non è uguale alla dimensione della struttura WDF_DMA_SYSTEM_PROFILE_CONFIG .
STATUS_INVALID_PARAMETER
Il membro DmaDescriptor della struttura a cui punta il parametro ProfileConfig è NULL o il parametro ConfigDirection contiene un valore non valido.

Commenti

Prima di chiamare WdfDmaEnablerConfigureSystemProfile, il driver deve chiamare WdfDmaEnablerCreate per creare l'oggetto enabler.

Un driver chiama in genere WdfDmaEnablerConfigureSystemProfile dalla sua funzione di callback EvtDevicePrepareHardware .

Se il driver ha specificato un profilo duplex quando viene chiamato WdfDmaEnablerCreate, il metodo WdfDmaEnablerConfigureSystemProfile del parametro ConfigDirection deve essere WdfDmaDirectionReadFromDevice per ottenere la struttura DMA_ADAPTER per le operazioni di lettura e WdfDmaDirectionWriteToDevice per ottenere la struttura di DMA_ADAPTER per le operazioni di scrittura.

Se l'abilitazione DMA è un abilitatore duplex, il driver deve inizializzare una direzione specifica prima di poterla usare.

Se il driver non ha specificato un profilo duplex, il driver può specificare WdfDmaDirectionReadFromDevice o WdfDmaDirectionWriteToDevice.

Esempio

L'esempio di codice seguente proviene dalla funzione di callback EvtDevicePrepareHardware di un driver. In questo esempio viene inizializzata una struttura WDF_DMA_SYSTEM_PROFILE_CONFIG e viene chiamata WdfDmaEnablerConfigureSystemProfile.


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);  

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Piattaforma di destinazione Universale
Versione KMDF minima 1.11
Intestazione wdfdmaenabler.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Framework Library Versioning).
IRQL PASSIVE_LEVEL
Regole di conformità DDI DriverCreate(kmdf)

Vedi anche

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate