Leaked source code of windows server 2003
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.

98 lines
3.3 KiB

  1. #pragma once
  2. #ifdef __cplusplus
  3. extern "C" {
  4. #endif
  5. ////////////////////////////////////////////////////
  6. //
  7. //
  8. // Cooked manifest content
  9. typedef struct _tagMANIFEST_COOKED_IDENTITY_PAIR {
  10. UNICODE_STRING Namespace;
  11. UNICODE_STRING Name;
  12. UNICODE_STRING Value;
  13. } MANIFEST_COOKED_IDENTITY_PAIR, *PMANIFEST_COOKED_IDENTITY_PAIR;
  14. #define COOKEDIDENTITY_FLAG_IS_ROOT (0x00000001)
  15. typedef struct _tagMANIFEST_COOKED_IDENTITY {
  16. ULONG ulFlags;
  17. ULONG ulIdentityComponents;
  18. PMANIFEST_COOKED_IDENTITY_PAIR pIdentityPairs;
  19. } MANIFEST_COOKED_IDENTITY, *PMANIFEST_COOKED_IDENTITY;
  20. typedef struct _tagMANIFEST_IDENTITY_TABLE {
  21. ULONG ulIdentityCount;
  22. ULONG ulRootIdentityIndex;
  23. PMANIFEST_COOKED_IDENTITY CookedIdentities;
  24. } MANIFEST_IDENTITY_TABLE, *PMANIFEST_IDENTITY_TABLE;
  25. #define COOKEDFILE_NAME_VALID (0x00000001)
  26. #define COOKEDFILE_LOADFROM_VALID (0x00000002)
  27. #define COOKEDFILE_HASHDATA_VALID (0x00000004)
  28. #define COOKEDFILE_DIGEST_ALG_VALID (0x00000008)
  29. #define COOKEDFILE_HASH_ALG_VALID (0x00000010)
  30. typedef struct _tagMANIFEST_COOKED_FILE {
  31. ULONG ulFlags;
  32. UNICODE_STRING FileName;
  33. UNICODE_STRING LoadFrom;
  34. PBYTE bHashData;
  35. ULONG ulHashByteCount;
  36. HashType usDigestAlgorithm;
  37. HashType usHashAlgorithm;
  38. } MANIFEST_COOKED_FILE, *PMANIFEST_COOKED_FILE;
  39. typedef struct _tagMANIFEST_COOKED_SUBCATEGORY {
  40. ULONG ulFlags;
  41. UNICODE_STRING PathName;
  42. } MANIFEST_COOKED_SUBCATEGORY, *PMANIFEST_COOKED_SUBCATEGORY;
  43. typedef struct _tagMANIFEST_COOKED_CATEGORYPARAM {
  44. ULONG ulFlags;
  45. UNICODE_STRING Name;
  46. UNICODE_STRING Value;
  47. } MANIFEST_COOKED_CATEGORYPARAM, *PMANIFEST_COOKED_CATEGORYPARAM;
  48. typedef struct _tagMANIFEST_COOKED_CATEGORY {
  49. ULONG ulFlags;
  50. ULONG ulSubCategoryCount;
  51. ULONG ulCategoryParameters;
  52. MANIFEST_COOKED_IDENTITY CategoryIdentity;
  53. PMANIFEST_COOKED_SUBCATEGORY pSubCategories;
  54. PMANIFEST_COOKED_CATEGORYPARAM pCategoryParameters;
  55. } MANIFEST_COOKED_CATEGORY, *PMANIFEST_COOKED_CATEGORY;
  56. #define COOKEDMANIFEST_HAS_FILES (0x00000001)
  57. #define COOKEDMANIFEST_HAS_IDENTITIES (0x00000002)
  58. #define COOKEDMANIFEST_HAS_COM_CLASSES (0x00000004)
  59. #define COOKEDMANIFEST_HAS_CLR_CLASSES (0x00000008)
  60. #define COOKEDMANIFEST_HAS_WINDOW_CLASSES (0x00000010)
  61. #define COOKEDMANIFEST_HAS_BINDING_REDIRECTS (0x00000020)
  62. typedef struct _tagMANIFEST_COOKED_DATA {
  63. SIZE_T cbTotalSize;
  64. ULONG ulFlags;
  65. ULONG ulFileCount;
  66. ULONG ulCategoryCount;
  67. PMANIFEST_IDENTITY_TABLE pManifestIdentity;
  68. PMANIFEST_COOKED_FILE pCookedFiles;
  69. PMANIFEST_COOKED_CATEGORY pCategoryList;
  70. // More to come here as things evolve
  71. } MANIFEST_COOKED_DATA, *PMANIFEST_COOKED_DATA;
  72. #ifdef __cplusplus
  73. };
  74. #endif