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 |
---|---|
|
Il driver ha richiesto una configurazione DMA non supportata nel sistema operativo corrente. |
|
Il driver fornito NULL nel parametro ProfileConfig . |
|
Il membro Size della struttura a cui punta il parametro ProfileConfig non è uguale alla dimensione della struttura WDF_DMA_SYSTEM_PROFILE_CONFIG . |
|
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) |