diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2018-04-22 16:08:12 +1000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2018-04-22 16:08:12 +1000 |
commit | e9d9fcde04411001ba8dff07b512fdc46ce13e47 (patch) | |
tree | 41d1c6919e49dd49c6fb1426d7ff6a6aa708643b /Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h | |
parent | 086975bd9442e86693fce2d16f003c4ad170cdac (diff) | |
download | lufa-e9d9fcde04411001ba8dff07b512fdc46ce13e47.tar.gz lufa-e9d9fcde04411001ba8dff07b512fdc46ce13e47.tar.bz2 lufa-e9d9fcde04411001ba8dff07b512fdc46ce13e47.zip |
Add MS OS Compatibility descriptors to RNDIS demos for driverless install on Windows.
Diffstat (limited to 'Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h')
-rw-r--r-- | Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h index 082f44afc..56a3acd23 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h +++ b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h @@ -59,6 +59,10 @@ /** Size in bytes of the CDC data IN and OUT endpoints. */ #define CDC_TXRX_EPSIZE 64 + /** Vendor request (0-255) the host should issue to retrieve the + * Microsoft OS Compatibility Descriptors. */ + #define VENDOR_REQUEST_ID_MS_COMPAT 0x01 + /* Type Defines: */ /** Type define for the device configuration descriptor structure. This must be defined in the * application code, as the configuration descriptor contains several sub-descriptors which @@ -81,6 +85,21 @@ USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint; } USB_Descriptor_Configuration_t; + /** Type define for a Microsoft OS Compatibility 1.0 descriptor. */ + typedef struct + { + uint32_t dwLength; + uint16_t bcdVersion; + uint16_t wIndex; + uint8_t bCount; + uint8_t bReserved[7]; + uint8_t bFirstInterfaceNumber; + uint8_t bReserved2; + char compatibleID[8]; + char subCompatibleID[8]; + uint8_t bReserved3[6]; + } USB_Descriptor_MSCompatibility_t; + /** Enum for the device interface descriptor IDs within the device. Each interface descriptor * should have a unique ID index associated with it, which can be used to refer to the * interface from other descriptors. @@ -100,6 +119,7 @@ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */ STRING_ID_Product = 2, /**< Product string ID */ + STRING_ID_MS_Compat = 0xEE, /**< MS OS Compatibility string descriptor ID (magic value set by Microsoft) */ }; /* Function Prototypes: */ @@ -108,5 +128,7 @@ const void** const DescriptorAddress) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); + void CheckIfMSCompatibilityDescriptorRequest(void); + #endif |