diff --git a/include/libopencm3/usb/microsoft.h b/include/libopencm3/usb/microsoft.h
new file mode 100644
index 00000000..d81879ed
--- /dev/null
+++ b/include/libopencm3/usb/microsoft.h
@@ -0,0 +1,81 @@
+/** @defgroup usb_microsoft_defines USB Microsoft OS Descriptors Type Definitions
+
+@brief Defined Constants and Types for the USB Microsoft OS Descriptors Type Definitions
+
+@ingroup USB_defines
+
+@version 1.0.0
+
+@author @htmlonly © @endhtmlonly 2022
+Rachel Mant
+
+@date 11 August 2022
+
+LGPL License Terms @ref lgpl_license
+*/
+
+/*
+ * This file is part of the libopencm3 project.
+ *
+ * Copyright (C) 2022 Rachel Mant
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see .
+ */
+
+/**@{*/
+
+#ifndef __MICROSOFT_H
+#define __MICROSOFT_H
+
+#include
+
+enum microsoft_req {
+ MICROSOFT_GET_DESCRIPTOR_SET = 7,
+ MICROSOFT_SET_ALTERNATE_ENUM = 8,
+};
+
+enum microsoft_os_descriptor_types {
+ MICROSOFT_OS_SET_HEADER = 0,
+ MICROSOFT_OS_SUBSET_HEADER_CONFIGURATION = 1,
+ MICROSOFT_OS_SUBSET_HEADER_FUNCTION = 2,
+ MICROSOFT_OS_FEATURE_COMPATIBLE_ID = 3,
+ MICROSOFT_OS_FEATURE_REG_PROPERTY = 4,
+ MICROSOFT_OS_FEATURE_MIN_RESUME_TIME = 5,
+ MICROSOFT_OS_FEATURE_MODEL_ID = 6,
+ MICROSOFT_OS_FEATURE_CCGP_DEVICE = 7,
+ MICROSOFT_OS_FEATURE_VENDOR_REVISION = 8,
+};
+
+enum microsoft_registry_types {
+ REG_SZ = 1,
+ REG_EXPAND_SZ = 2,
+ REG_BINARY = 3,
+ REG_DWORD_LITTLE_ENDIAN = 4,
+ REG_DWORD_BIG_ENDIAN = 5,
+ REG_LINK = 6,
+ REG_MULTI_SZ = 7,
+};
+
+#define MICROSOFT_OS_DESCRIPTOR_PLATFORM_CAPABILITY_ID \
+{ \
+ 0xd8dd60dfU, \
+ 0x4589U, \
+ 0x4cc7U, \
+ 0xd29cU, \
+ {0x65U, 0x9dU, 0x9eU, 0x64U, 0x8aU, 0x9fU}, \
+}
+
+#endif
+
+/**@}*/