Men-debug masalah perangkat USB dengan menggunakan peristiwa ETW
Topik ini memberikan tips untuk men-debug masalah perangkat USB dengan menggunakan peristiwa ETW.
- Mendiagnosis Kegagalan Enumerasi Perangkat
- Mendiagnosis Kegagalan Mulai Perangkat
- Pembuatan Profil Pengaturan Waktu Penyisipan Perangkat
- Waktu Lanjutkan Perangkat yang Dimulai Perangkat Lunak
- Waktu Lanjutkan Perangkat yang Dimulai Perangkat Keras
- HUB RESUME FROM Selective Suspend Timing
Mendiagnosis Kegagalan Enumerasi Perangkat
Anda dapat menggunakan peristiwa ETW yang terkait dengan tugas enumerasi hub USB untuk menentukan akar penyebab sebagian besar kegagalan enumerasi perangkat.
Untuk melihat peristiwa dalam log jejak yang terkait dengan tugas enumerasi hub USB
Buka Netmon dan temukan peristiwa enumerasi, seperti "Mulai Enumerasi Port". Klik peristiwa di panel Ringkasan Bingkai .
Konfirmasikan bahwa tugas untuk peristiwa ini adalah enumerasi hub USB dengan memeriksa bidang Tugas untuk peristiwa tersebut:
- Di panel Detail Bingkai , perluas Net Event, perluas Header, perluas Deskriptor, lalu temukan bidang Tugas .
- Konfirmasikan bahwa bidang Tugas berisi nilai 2 (enumerasi hub USB).
Filter peristiwa untuk memperlihatkan hanya yang dari driver hub yang memiliki nilai tugas 2:
Klik kanan bidang Tugas .
Pilih Tambahkan Nilai yang Dipilih untuk Menampilkan Filter.
Klik kanan peristiwa di panel Ringkasan Bingkai dan pilih Tambahkan"Nama Protokol" ke Filter Tampilan.
Di panel Filter Tampilan , ubah "OR" menjadi "AND". Contoh berikut menunjukkan filter yang dihasilkan:
NetEvent.Header.Descriptor.Task == 0x2 AND ProtocolName == "USBHub_MicrosoftWindowsUSBUSBHUB"
Untuk informasi selengkapnya tentang menggunakan filter di Netmon, lihat "Filter Netmon USB" di Studi Kasus: Memecahkan masalah Perangkat USB yang Tidak Diketahui dengan Menggunakan ETW dan Netmon.
Mendiagnosis Kegagalan Mulai Perangkat
Jika perangkat gagal dimulai selama penanganan driver hub dari paket permintaan I/O (IRP) mulai perangkat, Anda dapat menggunakan peristiwa ETW yang terkait dengan tugas mulai perangkat USB untuk memecahkan masalah kegagalan. Di Netmon, temukan peristiwa mulai perangkat seperti "USB Device Start IRP Dispatched". Anda dapat memfilter peristiwa untuk hanya menampilkannya dari driver hub dengan nilai tugas 21 (perangkat USB dimulai). Untuk informasi selengkapnya tentang membuat filter seperti itu, lihat "Mendiagnosis Kegagalan Enumerasi Perangkat" dalam topik ini.
Pembuatan Profil Pengaturan Waktu Penyisipan Perangkat
Anda dapat menentukan di mana waktu dihabiskan di driver hub selama penyisipan perangkat dengan melihat tanda waktu peristiwa enumerasi.
Waktu Enumerasi
Bagian waktu penyisipan perangkat yang dikonsumsi driver hub untuk menghitung perangkat adalah waktu yang berlalu antara dua peristiwa berikut:
- Mulai Enumerasi Port
- Enumerasi Port Selesai
Tugas Enumerasi Pembuatan Profil
Ketika driver hub USB menghitung perangkat, driver hub USB mencatat peristiwa berikut dalam urutan berikut:
- Mulai Enumerasi Port
- Enumerasi Debounce Selesai
- PDO Dibuat untuk Enumerasi
- Reset Port Enumerasi Pertama Selesai
- Enumerasi - CreateDevice Selesai
- Reset Port Enumerasi Kedua Selesai
- Enumerasi - InitializeDevice Selesai
- Enumerasi - SetupDevice Selesai
- Enumerasi Port Selesai
Untuk menentukan waktu yang dikonsumsi driver hub untuk setiap tugas enumerasi, hitung waktu yang berlalu di antara peristiwa sebelumnya. Waktu yang Berlalu antara IoInvalidateDeviceRelations dan IRP_MN_QUERY_DEVICE_RELATIONS
Untuk menentukan bagian waktu penyisipan perangkat yang dikonsumsi sistem saat menunggu IRP hubungan perangkat kueri, ukur waktu yang berlalu antara dua peristiwa berikut:
- Enumerasi Port Selesai
- USB Hub Query Device Relations (BusRelations) IRP Dikirim
Waktu yang Berlalu antara Penyelesaian IRP_MN_QUERY_DEVICE_RELATIONS dan IRP_MN_START_DEVICE
Untuk menentukan bagian waktu penyisipan perangkat antara melaporkan objek perangkat fisik (PDO) baru ke manajer Plug and Play dan penerimaan IRP mulai, ukur waktu yang berlalu antara dua peristiwa berikut:
- IRP Hubungan Perangkat Kueri USB Hub Selesai
- USB Device Start IRP Dikirim
Mulai Pengaturan Waktu IRP
Untuk menentukan waktu yang dihabiskan di driver hub yang menangani IRP mulai, ukur waktu yang berlalu antara dua peristiwa berikut:
- USB Device Start IRP Dikirim
- IRP Mulai Perangkat USB Selesai
Waktu Lanjutkan Perangkat Software-Initiated
Driver fungsi perangkat dapat mengirim permintaan daya perangkat D0 untuk melanjutkan perangkat dari status ditangguhkan. Untuk menentukan jumlah waktu yang diperlukan bagi perangkat untuk melanjutkan dari penangguhan dan siap untuk permintaan transfer, ukur waktu yang berlalu antara dua peristiwa berikut:
- Perangkat USB Set D0 Device Power IRP Dikirim
- Perangkat USB Set D0 Device Power IRP Selesai
Waktu Lanjutkan Perangkat Hardware-Initiated
Sinyal resume pada bus menyebabkan perangkat dilanjutkan dari status ditangguhkan. Untuk menentukan jumlah waktu yang diperlukan bagi perangkat untuk melanjutkan ke status di mana perangkat siap untuk permintaan transfer, ukur waktu yang berlalu antara dua peristiwa berikut:
- Hub induk tidak ditangguhkan:
- IRP Tunggu Perangkat USB Selesai
- Perangkat USB Set D0 Device Power IRP Selesai
- Hub induk ditangguhkan:
- Memulai Resume of Hub dari Selective Suspend (pertama dari peristiwa ini untuk hub apa pun antara perangkat dan pengontrol host)
- Perangkat USB Set D0 Device Power IRP Selesai
HUB RESUME FROM Selective Suspend Timing
Anda dapat menentukan jumlah waktu yang diperlukan agar hub dilanjutkan dari penangguhan selektif dengan mengukur waktu yang berlalu antara dua peristiwa berikut:
- Memulai Resume of Hub dari Suspensi Selektif
- Resume Hub Selesai
Catatan
Waktu lanjutkan hub tergantung pada waktu lanjutkan semua perangkat di bawah hub dan mungkin beberapa atau semua hub di atas hub yang sedang dilanjutkan.
Topik terkait
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