Bagikan melalui


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

IWDFDeviceInitialize2

IWDFIoRequest2::GetEffectiveIoType

WDF_DEVICE_IO_BUFFER_RETRIEVAL

WDF_DEVICE_IO_TYPE (UMDF)

WdfDeviceInitSetIoType

WdfDeviceInitSetIoTypeEx