IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME IOCTL (usbioctl.h)

Permintaan I/O IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME meminta driver bus untuk nama perangkat pengontrol host USB.

IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME adalah permintaan kontrol I/O mode kernel. Permintaan ini menargetkan PDO hub USB. Permintaan ini harus dikirim pada IRQL PASSIVE_LEVEL.

Kode utama

IRP_MJ_INTERNAL_DEVICE_CONTROL

Buffer input

Parameters.Others.Argument1 harus menjadi penunjuk ke struktur USB_HUB_NAME yang akan diisi dengan nama pengontrol host.

Panjang buffer input

Parameters.Others.Argument2 harus merupakan ULONG yang menentukan panjang buffer (dalam byte) di Parameters.Others.Argument1.

Buffer output

Driver bus akan mengisi buffer yang diacu oleh Parameters.Others.Argument1 dengan nama perangkat pengontrol host.

Panjang buffer output

Ini hanya akan diisi hingga panjang yang ditentukan dalam Parameters.Others.Argument2.

Blok status

Driver bus atau port mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS atau status kesalahan yang sesuai.

Keterangan

Pemanggil harus menyediakan buffer yang cukup besar untuk menahan struktur USB_HUB_NAME . Nilai Parameters.Others.Argument2 menunjukkan ukuran buffer tersebut. Setelah berhasil diselesaikan, anggota HubNameUSB_HUB_NAME berisi nama pengontrol dan anggota ActualLength menunjukkan panjang string nama pengontrol. Perhatikan bahwa ActualLength tidak menunjukkan ukuran seluruh struktur USB_HUB_NAME . Jika buffer yang disediakan dalam Parameters.Others.Argument1 tidak cukup besar untuk menahan string, nilai HubName mungkin menampilkan string yang terpotong.

Untuk mendapatkan ukuran buffer yang diperlukan untuk menahan string, kirim permintaan dua kali. Pada permintaan pertama, tentukan buffer yang setidaknya sizeof(USB_HUB_NAME) byte. Jika tidak, ActualLength tidak menunjukkan panjang string yang benar dan permintaan gagal dengan STATUS_BUFFER_TOO_SMALL.

Setelah permintaan pertama berhasil diselesaikan, alokasikan buffer ActualLength + sizeof(ULONG) byte dan kirim permintaan lagi. Setelah permintaan selesai, HubName menunjukkan seluruh string nama pengontrol.

Persyaratan

Persyaratan Nilai
Header usbioctl.h

Lihat juga

USB_HUB_NAME