Bagikan melalui


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.

Sintaks

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 awal 64-bit dari 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.

Keterangan

Fungsi ini adalah UMDF versi 2 yang setara dengan IWDFDevice3::MapIoSpace.

Driver harus memanggil fungsi ini selama start-up perangkat jika menerima sumber daya yang diterjemahkan dari 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 fungsi WDF_READ_REGISTER_Xxx dan WDF_WRITE_REGISTER_Xxx .

Driver yang memanggil WdfDeviceMapIoSpace harus mengatur arahan INF UmdfDirectHardwareAccess ke AllowDirectHardwareAccess.

Jika driver mengatur arahan INF UmdfRegisterAccessMode 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

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1
Target Platform Universal
Versi UMDF minimum 2.0
Header wdfdevice.h (termasuk Wdf.h)
Pustaka WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

Lihat juga

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace