Processing an OS Descriptor request -- Remote Desktop Protocol
Special processing on the client is needed when processing TS_URB_OS_FEATURE_DESCRIPTOR_REQUEST.
The following describes how to get the OS-specific string descriptor.
To retrieve a device's OS string descriptor, send a standard GET_DESCRIPTOR control request to the device.
For details on how to construct GET_DESCRIPTOR control requests, see [USB-SPC2.0] section 9.4 "Standard Device Requests."
The request must have the format shown in the following table.
|
bmRequestType |
bRequest |
wValue |
wIndex |
wLength |
Data |
|---|---|---|---|---|---|
|
1000 0000B |
GET_DESCRIPTOR |
0x03EE |
0x0000 |
0x12 |
Returned string |
bmRequestType: IN. This 1-byte field is divided into three parts that indicate the data transfer direction, the descriptor type, and the recipient.
To retrieve a USB string descriptor, bmRequestType MUST be set to 10000000B (0x80).
bRequest: IN. This field specifies the request type. It should be set to the standard GET_DESCRIPTOR request code.
wValue: IN. This field is split into two parts for GET_DESCRIPTOR requests.
The high byte contains the descriptor type. To retrieve a string descriptor, set this byte to 0x03.
The low byte contains the descriptor's string index, which indicates where the descriptor is stored in firmware.
To retrieve an OS string descriptor, set this byte to 0xEE.
wIndex: IN. This field specifies the descriptor's language ID. It must be set to 0 for OS string descriptors.
wLength: IN. This field specifies the length of the buffer, in bytes, that is to receive the string descriptor.
The device should respond to values ranging from 0x02-0xFF. wLength should be set to 0x12 for OS string descriptors.
Data: OUT. This field is a pointer to the buffer that will receive the requested descriptor. The format of the descriptor is described in the following table.
For more details on how to send control requests, see [USB-SPC2.0].
If a device does not have a valid string descriptor at 0xEE, it responds with a Stall or Request Error.<4>
If an OS string descriptor request is successful, the device returns the descriptor in the request's Data field.
Version 1.00 of the OS string descriptor has a fixed length of 18 bytes, with a structure as shown in the following table.
This format MUST be used by all OS string descriptors.
|
Length |
Type |
Signature |
MS Vendor Code |
Pad |
|---|---|---|---|---|
|
0x14 |
0x03 |
MSFT100 |
unsigned byte |
0x00 |
Length: An unsigned byte and MUST be set to 0x14.
Type: An unsigned byte and MUST be set to 0x03.
Signature: A Unicode string and MUST be set to "MSFT100".
MS Vendor Code: An unsigned byte, it will be used to retrieve associated feature descriptors.
Pad: An unsigned byte and MUST be set to 0x00.
When processing the Signature and MS VendorCode fields:
The Signature field contains a Unicode character array that identifies the descriptor as an OS string descriptor
and includes the version number.
For version 1.00, this array must be set to "MSFT100" (0x4D00 0x5300 0x4600 0x5400 0x3100 0x3000 0x3000).The MS VendorCode field is used to retrieve the associated feature descriptors.
This code is used as Requestfield in TS_URB_CONTROL_VENDOR_OR_CLASS_REQUEST section 2.2.9.12.
Because independent hardware vendors can store string descriptors at any index,
there is no guarantee that a string descriptor stored at 0xEE is an OS string descriptor.<5>
Processing an OS Descriptor request -- Remote Desktop Protocol的更多相关文章
- Connect to a Windows PC from Ubuntu via Remote Desktop Connection
http://www.7tutorials.com/connecting-windows-remote-desktop-ubuntu A useful feature of Windows is be ...
- Running a Remote Desktop on a Windows Azure Linux VM (远程桌面到Windows Azure Linux )-摘自网络(试了,没成功 - -!)
A complete click-by-click, step-by-step video of this article is available ...
- 使用ubuntu远程连接windows, Connect to a Windows PC from Ubuntu via Remote Desktop Connection
from: https://www.digitalcitizen.life/connecting-windows-remote-desktop-ubuntu NOTE: This tutorial w ...
- [官网]Prevent a worm by updating Remote Desktop Services (CVE-2019-0708)
Prevent a worm by updating Remote Desktop Services (CVE-2019-0708) ★★★★★ https://blogs.technet.micro ...
- [OS] 修改屏幕分辨率(用Remote Desktop Connection 或者 用工具:Remote Desktop Connection Manager)
用Remote Desktop Connection Remote Desktop Connection Manager
- remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接
目录 I. 预备 II. Mac连接Windows III. Windows连接Mac IV. Windows连接Ubuntu V. Mac连接Ubuntu VI. Ubuntu连接Mac VII, ...
- Windows组件:打开MSDTC,恢复Windows TaskBar,查看windows日志,打开Remote Desktop,打开Services,资源监控
一,Win10 打开 MSDTC 1,Win+R 打开运行窗口,输入 dcomcnfg,打开组件服务窗口 2,在组件服务 catalog下找到 Distributed Transaction Coor ...
- Configure Security Settings for Remote Desktop(RDP) Services Connections
catalogue . Configure Server Authentication and Encryption Levels . Configure Network Level Authenti ...
- Remote Desktop File Format
转自:http://engrmosaic.uncc.edu/mosaic-anywhere/remote-desktop-file-format The new Terminal Services c ...
随机推荐
- MYSQL导入数据出现The MySQL server is running with the --secure-file-priv
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this ...
- MFC小型工具通用界面框架CLIST控件+右键菜单功能
MFC-小型工具通用界面框架 0x1 场景 由于工作需要我会写代码开发工具给客户或者同事用.代码都能实现,但写个黑乎乎的命令行工具给别人用确实显得不够专业,用别人写好的成型工具又担心有后门. 所以掌握 ...
- .net的锁
一.lock .Monitor 处理并行任务的时候,效率最高的就是多线程.当不同线程需要访问同一资源时候,就需要同步了.就像生活中很多人要一起赶飞机大家都要访问飞机这个资源每个人是一条线程那么就有门 ...
- SSH2框架搭建 和 配置文件详解
-----------补充说明----------- 文章中所列出的struts2的2.2jar包已经不是最新的了,这个版本有严重漏洞, 现在最新版本为2.3.15,所以.你懂的http://stru ...
- Java 基本语法---Java运算符
Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...
- weex官方demo weex-hackernews代码解读(上)
一.介绍 weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.最新版本的weex已默认将vue.js作为前端框架,而weex-hac ...
- 【AtCoder】CODE FESTIVAL 2017 Final
A - AKIBA 模拟即可 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair ...
- 子组件通过 $emit 触发父组件的自定义事件
子组件: <template> <div class="train-city"> <h3>父组件传给子组件的toCity:{{sendData} ...
- 005.Zabbix-Agent客户端安装
一 安装Zabbix-Agent [root@imxhy ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-rel ...
- 标签传播算法(llgc 或 lgc)
动手实践标签传播算法 复现论文:Learning with Local and Global Consistency1 lgc 算法可以参考:DecodePaper/notebook/lgc 初始化算 ...