Bagikan melalui


Bekerja dengan Perangkat USB di Driver UMDF 1.x

Peringatan

UMDF 2 adalah versi terbaru UMDF dan supersedes 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.

Sampel UMDF 1 yang diarsipkan dapat ditemukan di Windows 11, versi 22H2 - Pembaruan Sampel Driver Mei 2022.

Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.

Kerangka kerja mewakili setiap perangkat USB sebagai objek perangkat USB kerangka kerja. Driver UMDF harus membuat objek perangkat USB kerangka kerja sebelum driver dapat mengakses dukungan kerangka kerja untuk target I/O USB. UMDF menyediakan metode objek perangkat USB yang memungkinkan driver UMDF untuk:

Membuat Objek Perangkat UMDF-USB

Untuk menggunakan kemampuan target USB I/O kerangka kerja, driver UMDF harus terlebih dahulu mendapatkan pointer ke antarmuka IWDFUsbTargetFactory . Untuk mendapatkan penunjuk, driver harus memanggil metode QueryInterface dari antarmuka IWDFDevice perangkat. Contoh kode berikut menunjukkan cara memanggil QueryInterface untuk mendapatkan penunjuk:

hr = pdevice->QueryInterface(IID_IWDFUsbTargetFactory, (LPVOID*)&ppUsbTargetFactory);

Driver selanjutnya harus memanggil metode IWDFUsbTargetFactory::CreateUsbTargetDevice untuk membuat objek target I/O USB untuk perangkat. Setelah driver membuat target I/O USB, driver dapat mengirim permintaan ke target I/O. Biasanya, driver memanggil fungsi panggilan balik IWDFUsbTargetFactory::CreateUsbTargetDevice dari dalam fungsi panggilan balik IPnpCallbackHardware::OnPrepareHardware .

Setelah driver memanggil IWDFUsbTargetFactory::CreateUsbTargetDevice, driver dapat memperoleh informasi perangkat USB (misalnya, deskriptor USB untuk perangkat, antarmuka USB, dan titik akhir antarmuka). Deskriptor USB dijelaskan dalam spesifikasi USB.

Mendapatkan Informasi Perangkat UMDF-USB

Setelah driver UMDF memanggil metode IWDFUsbTargetFactory::CreateUsbTargetDevice untuk membuat objek perangkat target UMDF-USB, driver dapat memanggil metode berikut yang ditentukan objek perangkat target USB untuk mendapatkan informasi tentang perangkat USB:

IWDFUsbTargetDevice::RetrieveDescriptor
Mendapatkan pendeskripsi perangkat USB perangkat.

IWDFUsbTargetDevice::GetNumInterfaces
Mendapatkan jumlah antarmuka USB yang didukung perangkat.

IWDFUsbTargetDevice::RetrieveUsbInterface
Mendapatkan pointer ke antarmuka IWDFUsbInterface yang mengekspos salah satu antarmuka USB yang didukung perangkat.

IWDFUsbTargetDevice::RetrieveDeviceInformation
Mengambil informasi kemampuan yang terkait dengan perangkat USB.

IWDFUsbTargetDevice::RetrievePowerPolicy
Mengambil kebijakan daya WinUsb.

IWDFUsbTargetDevice::GetWinUsbHandle
Mendapatkan handel antarmuka WinUsb yang terkait dengan objek perangkat target I/O.

Mengirim Transfer Kontrol ke Objek Perangkat UMDF-USB

Driver UMDF dapat memanggil metode IWDFUsbTargetDevice::FormatRequestForControlTransfer untuk memformat permintaan I/O yang menjelaskan transfer kontrol USB standar, khusus kelas perangkat, atau khusus vendor. Driver kemudian dapat memanggil metode IWDFIoRequest::Send untuk mengirim permintaan secara sinkron atau asinkron.

Mengatur Kebijakan Daya untuk Perangkat UMDF-USB

Driver UMDF dapat memanggil metode IWDFUsbTargetDevice::SetPowerPolicy untuk mengatur kebijakan daya yang digunakan oleh WinUsb untuk perangkat USB. Kebijakan daya untuk efek perangkat USB berubah pada status manajemen daya untuk perangkat.