Fungsi WdfDeviceInitSetIoTypeEx (wdfdevice.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfDeviceInitSetIoTypeEx mengatur metode atau preferensi tentang bagaimana driver akan mengakses buffer data yang disertakan dalam permintaan baca dan tulis, serta permintaan kontrol I/O perangkat, untuk perangkat tertentu.
Sintaks
void WdfDeviceInitSetIoTypeEx(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PWDF_IO_TYPE_CONFIG IoTypeConfig
);
Parameter
[in] DeviceInit
Penunjuk ke struktur WDFDEVICE_INIT .
[in] IoTypeConfig
Penunjuk ke struktur WDF_IO_TYPE_CONFIG diinisialisasi menggunakan makro WDF_IO_TYPE_CONFIG_INIT.
Nilai kembali
Tidak ada
Keterangan
Jika Anda menulis driver menggunakan KMDF versi 1.11 atau yang lebih lama, Anda harus menggunakan WdfDeviceInitSetIoType.
KMDF Driver KMDF memanggil WdfDeviceInitSetIoTypeEx untuk mengatur metode akses buffer untuk permintaan baca dan tulis. Untuk permintaan kontrol I/O perangkat, kerangka kerja menggunakan jenis buffer yang dikodekan dalam kode kontrol I/O (IOCTL).
UMDF Driver UMDF memanggil WdfDeviceInitSetIoTypeEx untuk mendaftarkan preferensi untuk permintaan baca dan tulis, serta permintaan kontrol I/O perangkat. Nilai yang disediakan driver UMDF untuk WdfDeviceInitSetIoTypeEx hanya preferensi, dan tidak dijamin untuk digunakan oleh kerangka kerja. Driver Anda dapat memanggil WdfDeviceGetDeviceStackIoType untuk menentukan metode akses buffer yang telah ditetapkan UMDF ke permintaan baca/tulis perangkat dan permintaan kontrol I/O. Untuk permintaan kontrol I/O, metode akses yang digunakan kerangka kerja mungkin berbeda dari metode akses yang ditentukan dalam IOCTL dan metode akses yang diminta oleh driver.
Jika driver memanggil WdfDeviceInitSetIoTypeEx, driver harus melakukannya sebelum memanggil WdfDeviceCreate.
Jika driver tidak memanggil WdfDeviceInitSetIoTypeEx, kerangka kerja mengatur metode akses buffer driver ke WdfDeviceIoBuffered, untuk perangkat yang ditentukan.
Memanggil WdfDeviceInitSetIoTypeEx dari driver filter KMDF tidak berpengaruh. Untuk driver filter KMDF, kerangka kerja menggunakan jenis I/O yang ditentukan driver berikutnya di tumpukan driver.
Namun, driver filter UMDF dapat mendaftarkan preferensi untuk metode akses buffer dengan memanggil WdfDeviceInitSetIoTypeEx.
Semua driver UMDF dalam tumpukan driver harus menggunakan metode yang sama untuk mengakses buffer perangkat. Jika UMDF menentukan bahwa beberapa driver lebih suka I/O buffer atau I/O langsung untuk perangkat sementara driver lain hanya lebih suka I/O buffer untuk perangkat, UMDF menggunakan I/O buffer untuk semua driver. Jika satu atau beberapa driver tumpukan hanya lebih suka I/O yang di-buffer sementara yang lain hanya lebih suka I/O langsung, UMDF mencatat peristiwa ke log peristiwa sistem dan tidak memulai tumpukan driver.
Untuk informasi selengkapnya tentang metode akses buffer, lihat Mengakses Buffer Data.
Metode ini setara dengan UMDF 2.0 dengan IWDFDeviceInitialize2::SetIoTypePreference.
Contoh
Contoh kode berikut menginisialisasi struktur WDF_IO_TYPE_CONFIG , mengatur preferensi akses buffer driver ke I/O langsung, menentukan bahwa transfer yang lebih kecil dari 32 KB harus menggunakan I/O yang di-buffer, dan memanggil WdfDeviceInitSetIoTypeEx.
WDF_IO_TYPE_CONFIG ioConfig;
WDF_IO_TYPE_CONFIG_INIT(&ioConfig);
ioConfig.ReadWriteIoType = WdfDeviceIoDirect;
ioConfig.DeviceControlIoType = WdfDeviceIoDirect;
ioConfig.DirectTransferThreshold = 32;
WdfDeviceInitSetIoTypeEx(DeviceInit, &ioConfig);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1.13 |
Versi UMDF minimum | 2.0 |
Header | wdfdevice.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk