Funzione WdfDeviceMapIoSpace (wdfdevice.h)
[Si applica solo a UMDF]
La funzione WdfDeviceMapIoSpace esegue il mapping dell'intervallo di indirizzi fisico specificato allo spazio degli indirizzi di sistema e restituisce uno pseudo indirizzo di base.
Sintassi
NTSTATUS WdfDeviceMapIoSpace(
[in] WDFDEVICE Device,
[in] PHYSICAL_ADDRESS PhysicalAddress,
[in] SIZE_T NumberOfBytes,
[in] MEMORY_CACHING_TYPE CacheType,
[out] PVOID *PseudoBaseAddress
);
Parametri
[in] Device
Handle per un oggetto dispositivo framework.
[in] PhysicalAddress
Specifica l'indirizzo fisico a 64 bit iniziale dell'intervallo di I/O di cui eseguire il mapping.
[in] NumberOfBytes
Specifica un valore maggiore di zero, che indica il numero di byte di cui eseguire il mapping.
[in] CacheType
Specifica un valore MEMORY_CACHING_TYPE, che indica l'attributo della cache da usare per eseguire il mapping dell'intervallo di indirizzi fisici. Il tipo di enumerazione MEMORY_CACHING_TYPE è definito in Wdfdevice.h.
[out] PseudoBaseAddress
Indirizzo di una posizione che riceve un puntatore all'indirizzo di base pseudo.
Valore restituito
Se l'operazione ha esito positivo, la funzione restituisce STATUS_SUCCESS.
La funzione potrebbe restituire altri valori NTSTATUS .
Osservazioni
Questa funzione è l'equivalente UMDF versione 2 di IWDFDevice3::MapIoSpace.
Un driver deve chiamare questa funzione durante l'avvio del dispositivo se riceve risorse convertite di tipo CmResourceTypeMemory in una struttura CM_PARTIAL_RESOURCE_DESCRIPTOR. WdfDeviceMapIoSpace esegue il mapping dell'indirizzo fisico restituito nell'elenco di risorse a un indirizzo gestito dal framework denominato pseudo indirizzo di base.
Il driver può quindi usare lo pseudo indirizzo di base per accedere ai registri dei dispositivi con WDF_READ_REGISTER_Xxx e WDF_WRITE_REGISTER_xxx funzioni.
Un driver che chiama
Se il driver imposta la direttiva UmdfRegisterAccessMode INF su RegisterAccessUsingUserModeMapping, chiamando WdfDeviceMapIoSpace esegue anche il mapping dell'intervallo di indirizzi fisici specificato a un intervallo di indirizzi di base in modalità utente a cui il driver può successivamente accedere chiamando WdfDeviceGetHardwareRegisterMappedAddress.
Per altre informazioni sulle direttive INF che i driver UMDF possono usare, vedere Specifica delle direttive WDF nei file INF.
Per altre informazioni sull'analisi delle risorse hardware a partire da UMDF versione 2, vedere Gestione delle risorse hardware in un driver UMDF.
Il tipo PHYSICAL_ADDRESS è definito in Wudfwdm.h, come indicato di seguito:
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
Per un esempio che mostra come un driver trova ed esegue il mapping delle risorse di registrazione mappate alla memoria, vedere Lettura e scrittura nei registri dei dispositivi.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 8.1 |
piattaforma di destinazione | Universale |
versione minima di UMDF | 2.0 |
intestazione |
wdfdevice.h (include Wdf.h) |
libreria |
WUDFx02000.lib |
dll | WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |