Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
3.0 KiB

  1. /*++
  2. Copyright (c) 2001 Microsoft Corporation
  3. Module Name:
  4. MSOSDESC.H
  5. Abstract:
  6. Internal definitions for the MS OS Descriptors. Public definitions
  7. are in USB.H.
  8. Environment:
  9. Kernel & user mode
  10. Revision History:
  11. 05-01-01 : created
  12. --*/
  13. #ifndef __MSOSDESC_H__
  14. #define __MSOSDESC_H__
  15. #include <pshpack1.h>
  16. //
  17. // Definitions for internal MS OS Descriptor support
  18. //
  19. #define MS_EXT_CONFIG_DESCRIPTOR_INDEX 0x0004
  20. #define MS_EXT_CONFIG_DESC_VER 0x0100
  21. // Define header section returned for MS_EXT_CONFIG_DESCRIPTOR request.
  22. typedef struct _MS_EXT_CONFIG_DESC_HEADER {
  23. ULONG dwLength; // Length of the entire descriptor
  24. USHORT bcdVersion; // Version level of this descriptor in BCD
  25. USHORT wIndex; // MS_EXT_CONFIG_DESCRIPTOR_INDEX
  26. UCHAR bCount; // Number of function sections that follow
  27. UCHAR reserved[7]; // Number of function sections that follow
  28. } MS_EXT_CONFIG_DESC_HEADER, *PMS_EXT_CONFIG_DESC_HEADER;
  29. // Define function section returned for MS_EXT_CONFIG_DESCRIPTOR request.
  30. typedef struct _MS_EXT_CONFIG_DESC_FUNCTION {
  31. UCHAR bFirstInterfaceNumber; // Starting Interface Number for this funct
  32. UCHAR bInterfaceCount; // Number of interfaces in this function
  33. UCHAR CompatibleID[8];
  34. UCHAR SubCompatibleID[8];
  35. UCHAR reserved[6];
  36. } MS_EXT_CONFIG_DESC_FUNCTION, *PMS_EXT_CONFIG_DESC_FUNCTION;
  37. // This is the descriptor returned for a MS_EXT_CONFIG_DESCRIPTOR request.
  38. typedef struct _MS_EXT_CONFIG_DESC {
  39. MS_EXT_CONFIG_DESC_HEADER Header;
  40. MS_EXT_CONFIG_DESC_FUNCTION Function[1]; // Variable length array of these
  41. } MS_EXT_CONFIG_DESC, *PMS_EXT_CONFIG_DESC;
  42. #define MS_EXT_PROP_DESCRIPTOR_INDEX 0x0005
  43. #define MS_EXT_PROP_DESC_VER 0x0100
  44. typedef struct _MS_EXT_PROP_DESC_HEADER {
  45. ULONG dwLength; // Length of the entire descriptor
  46. USHORT bcdVersion; // Version level of this descriptor in BCD
  47. USHORT wIndex; // MS_EXT_PROP_DESCRIPTOR_INDEX
  48. USHORT wCount; // Number of custom property sections that follow
  49. } MS_EXT_PROP_DESC_HEADER, *PMS_EXT_PROP_DESC_HEADER;
  50. // The custom property section(s) are of variable length.
  51. typedef struct _MS_EXT_PROP_DESC_CUSTOM_PROP {
  52. ULONG dwSize; // Size of this custom property section
  53. ULONG dwPropertyDataType; // REG_SZ, etc.
  54. USHORT wPropertyNameLength;// Length of key name
  55. WCHAR PropertyName[1];
  56. } MS_EXT_PROP_DESC_CUSTOM_PROP, *PMS_EXT_PROP_DESC_CUSTOM_PROP;
  57. typedef struct _MS_EXT_PROP_DESC_CUSTOM_PROP_DATA {
  58. ULONG dwPropertyDataLength;
  59. PVOID PropertyData[1];
  60. } MS_EXT_PROP_DESC_CUSTOM_PROP_DATA, *PMS_EXT_PROP_DESC_CUSTOM_PROP_DATA;
  61. typedef struct _MS_EXT_PROP_DESC {
  62. MS_EXT_PROP_DESC_HEADER Header;
  63. MS_EXT_PROP_DESC_CUSTOM_PROP_DATA CustomSection[1];
  64. } MS_EXT_PROP_DESC, *PMS_EXT_PROP_DESC;
  65. #include <poppack.h>
  66. #endif /* __MSOSDESC_H__ */