要为一个 usb 设备选择一种配置,该设备的客户端驱动程序必须选择至少一种支持的配置,并指定要使用的每个接口的备用设置。
客户端驱动程序将这些选择封装在一个选择配置请求中并将该请求发送到 Microsoft 提供的 USB 驱动程序堆栈,具体来讲就是 USB 总线驱动程序(USB 集线器 PDO)。
USB 总线驱动程序在指定的配置中选择每个接口,并为接口中的每个终结点设置一个通信通道或管道。 请求完成后,客户端驱动程序收到所选配置的一个句柄,以及在每个接口的有效备用设置中定义的终结点管道句柄。
然后客户端驱动程序可以使用所收到的句柄来更改配置设置,并向一个特定终结点发送 I/O 读和写请求。