Metode IWDFDeviceInitialize2::SetIoTypePreference (wudfddi.h)
[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]
Metode SetIoTypePreference menentukan preferensi Anda tentang bagaimana UMDF dan driver mengakses buffer data permintaan I/O perangkat.
Sintaks
void SetIoTypePreference(
[in] WDF_DEVICE_IO_BUFFER_RETRIEVAL RetrievalMode,
[in] WDF_DEVICE_IO_TYPE ReadWritePreference,
[in] WDF_DEVICE_IO_TYPE IoControlPreference
);
Parameter
[in] RetrievalMode
Nilai yang diketik WDF_DEVICE_IO_BUFFER_RETRIEVAL yang menentukan mode pengambilan buffer yang Anda pilih UMDF gunakan untuk membuat buffer permintaan I/O tersedia untuk driver.
[in] ReadWritePreference
Nilai yang diketik WDF_DEVICE_IO_TYPE yang menentukan metode akses buffer yang Anda pilih UMDF gunakan untuk buffer data permintaan baca dan tulis.
[in] IoControlPreference
Nilai yang diketik WDF_DEVICE_IO_TYPE yang menentukan metode akses buffer yang Anda pilih UMDF gunakan untuk buffer data permintaan kontrol I/O perangkat.
Nilai kembali
Tidak ada
Keterangan
Jika driver memanggil SetIoTypePreference untuk perangkat, driver harus melakukannya dari fungsi panggilan balik IDriverEntry::OnDeviceAdd , sebelum driver memanggil IWDFDriver::CreateDevice.
Jika driver tidak memanggil SetIoTypePreference, UMDF mengatur parameter RetrievalMode ke WdfDeviceIoBufferRetrievalCopyImmediately dan mengatur metode akses buffer ke WdfDeviceIoBuffered untuk permintaan kontrol I/O baca, tulis, dan perangkat.
UMDF mungkin tidak menggunakan preferensi yang ditentukan driver saat memanggil SetIoTypePreference. Untuk informasi selengkapnya tentang bagaimana UMDF memilih mode pengambilan dan metode akses buffer, lihat Menentukan Mode Pengambilan Buffer dan Bagaimana UMDF Memilih Metode Akses Buffer untuk Permintaan I/O.
Driver tidak dapat mengatur metode akses buffer ke WdfDeviceIoDirect atau WdfDeviceIoBufferedOrDirect kecuali juga mengatur parameter RetrievalMode ke WdfDeviceIoBufferRetrievalDeferred.
Untuk informasi selengkapnya tentang mengakses buffer data permintaan I/O, lihat Mengakses Buffer Data di Driver UMDF-Based.
Contoh
Contoh kode berikut menunjukkan segmen fungsi panggilan balik IDriverEntry::OnDeviceAdd driver. Segmen mendapatkan antarmuka IWDFDeviceInitialize2 lalu memanggil SetIoTypePreference.
HRESULT
CMyDriver::OnDeviceAdd(
__in IWDFDriver *FxWdfDriver,
__in IWDFDeviceInitialize *FxDeviceInit
)
{
...
//
// Declare an IWDFDeviceInitialize2 interface pointer and obtain the
// IWDFDeviceInitialize2 interface from the IWDFDeviceInitialize interface.
//
CComQIPtr<IWDFDeviceInitialize2> di2 = FxDeviceInit;
//
// For this device, set the retrieval mode to deferred, set
// the access method to buffered for read and write requests,
// and set the access mode to direct for device I/O control requests.
//
di2->SetIoTypePreference(WdfDeviceIoBufferRetrievalDeferred,
WdfDeviceIoBuffered,
WdfDeviceIoDirect);
...
}
Persyaratan
Persyaratan | Nilai |
---|---|
Akhir dukungan | Tidak tersedia di UMDF 2.0 dan yang lebih baru. |
Target Platform | Desktop |
Versi UMDF minimum | 1.9 |
Header | wudfddi.h (termasuk Wudfddi.h) |
DLL | WUDFx.dll |
Lihat juga
IWDFIoRequest2::GetEffectiveIoType
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