Fungsi WdfDeviceMapIoSpace (wdfdevice.h)
[Hanya berlaku untuk UMDF]
Fungsi WdfDeviceMapIoSpace memetakan rentang alamat fisik yang diberikan ke ruang alamat sistem dan mengembalikan alamat dasar pseudo.
Sintaksis
NTSTATUS WdfDeviceMapIoSpace(
[in] WDFDEVICE Device,
[in] PHYSICAL_ADDRESS PhysicalAddress,
[in] SIZE_T NumberOfBytes,
[in] MEMORY_CACHING_TYPE CacheType,
[out] PVOID *PseudoBaseAddress
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja.
[in] PhysicalAddress
Menentukan alamat fisik 64-bit awal rentang I/O yang akan dipetakan.
[in] NumberOfBytes
Menentukan nilai yang lebih besar dari nol, menunjukkan jumlah byte yang akan dipetakan.
[in] CacheType
Menentukan nilai MEMORY_CACHING_TYPE, yang menunjukkan atribut cache yang akan digunakan untuk memetakan rentang alamat fisik. Jenis enumerasi MEMORY_CACHING_TYPE didefinisikan dalam Wdfdevice.h.
[out] PseudoBaseAddress
Alamat lokasi yang menerima penunjuk ke alamat dasar pseudo.
Mengembalikan nilai
Jika operasi berhasil, fungsi akan mengembalikan STATUS_SUCCESS.
Fungsi ini mungkin mengembalikan nilai NTSTATUS lainnya.
Komentar
Fungsi ini adalah UMDF versi 2 yang setara dengan IWDFDevice3::MapIoSpace.
Driver harus memanggil fungsi ini selama start-up perangkat jika menerima sumber daya terjemahan jenis cmResourceTypeMemory dalam struktur CM_PARTIAL_RESOURCE_DESCRIPTOR. WdfDeviceMapIoSpace memetakan alamat fisik yang dikembalikan dalam daftar sumber daya ke alamat yang dikelola kerangka kerja yang disebut sebagai alamat dasar pseudo.
Driver kemudian dapat menggunakan alamat dasar pseudo untuk mengakses register perangkat dengan WDF_READ_REGISTER_Xxx dan WDF_WRITE_REGISTER_fungsi Xxx.
Driver yang memanggil WdfDeviceMapIoSpace harus mengatur direktif INF UmdfDirectHardwareAccess ke AllowDirectHardwareAccess.
Jika driver mengatur UmdfRegisterAccessMode arahan INF ke RegisterAccessUsingUserModeMapping, memanggil WdfDeviceMapIoSpace juga memetakan rentang alamat fisik yang diberikan ke rentang alamat dasar mode pengguna yang kemudian dapat diakses driver dengan memanggil WdfDeviceGetHardwareRegisterMappedAddress.
Untuk informasi selengkapnya tentang arahan INF yang dapat digunakan driver UMDF, lihat Menentukan Arahan WDF dalam File INF.
Untuk informasi selengkapnya tentang penguraian sumber daya perangkat keras mulai dari UMDF versi 2, lihat Menangani Sumber Daya Perangkat Keras di Driver UMDF.
Jenis PHYSICAL_ADDRESS didefinisikan dalam Wudfwdm.h, sebagai berikut:
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
Untuk contoh yang menunjukkan bagaimana driver menemukan dan memetakan sumber daya register yang dipetakan memori, lihat Membaca dan Menulis ke Daftar Perangkat.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 8.1 |
Platform Target |
Universal |
versi UMDF Minimum | 2.0 |
Header |
wdfdevice.h (termasuk Wdf.h) |
Pustaka |
WUDFx02000.lib |
DLL |
WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |