IOCTL_HID_GET_STRING IOCTL (hidport.h)
IOCTL_HID_GET_STRING要求會取得 最上層集合的製造商標識碼、產品標識碼或序號。 擷取的字串是以人類可讀取的格式,以 NULL 終止的寬字元字串。
如需 HIDClass 裝置的一般資訊,請參閱 HID 集合。
主要程序代碼
輸入緩衝區
IOCTL_HID_GET_STRING會使用兩個輸入緩衝區。
IRP I/O 堆疊位置中的 Parameters.DeviceIoControl.OutputBufferLength 表示 Irp-UserBuffer> 鎖定輸出緩衝區的大小,以位元組為單位。 如果輸出緩衝區不夠大,無法容納整個NULL終止的內嵌字元串,則要求不會在輸出緩衝區中傳回任何內容。 內嵌字串中可能的最大字元數是裝置特定的。 對於USB裝置,最大字串長度為126個字元, (不包含終止NULL字元) 。
IRP 的 I/O 堆疊位置中的 Parameters.DeviceIoControl.Type3InputBuffer 包含複合值。 兩個最重要的位元組包含要擷取之字串的語言標識碼。 兩個最小有效位元組包含下列三個常數值之一:
- HID_STRING_ID_IMANUFACTURER
- HID_STRING_ID_IPRODUCT
- HID_STRING_ID_ISERIALNUMBER
請務必不要將這三個常數與標識符的實際字串索引混淆。 這些常數代表裝置描述元中可找到對應字串索引的位移。
例如,HID_STRING_ID_IMANUFACTURER指出找到製造商標識碼索引的裝置描述元中的位置。 接著,此索引會做為字串描述元的位移,而製造商標識碼的人類可讀取格式。
輸入緩衝區長度
OutputBufferLength 的大小和 Type3InputBuffer 的大小。
輸出緩衝區
HID 迷你驅動程式會將要求字串填入 Irp-UserBuffer> 的緩衝區, (以 NULL 終止的寬字元字串) 。
輸出緩衝區長度
UserBuffer 的大小。
狀態區塊
對裝置執行 I/O 的 HID 迷你驅動程式會設定下列 Irp-IoStatus> 字段:
- 信息 會設定為從裝置傳輸的位元元組數目。
- 如果 傳輸完成且沒有錯誤,狀態會設定為STATUS_SUCCESS。 否則,它會設定為適當的NTSTATUS錯誤碼。
規格需求
需求 | 值 |
---|---|
標頭 | hidport.h (包含 Hidport.h) |