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.

160 lines
2.7 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1995
  5. //
  6. // File: drot.h
  7. //
  8. // Contents: Contains structure definitons for the significant ROT
  9. // classes which the ntsd extensions need to access.
  10. // These ole classes cannot be accessed more cleanly because
  11. // typically the members of interest are private.
  12. //
  13. // WARNING. IF THE REFERENCED OLE CLASSES CHANGE, THEN THESE
  14. // DEFINITIONS MUST CHANGE!
  15. //
  16. // History: 06-01-95 BruceMa Created
  17. // 06-26-95 BruceMa Add SCM ROT support
  18. //
  19. //--------------------------------------------------------------------------
  20. #define SCM_HASH_SIZE 251
  21. struct SCMREGKEY
  22. {
  23. ULONG64 dwEntryLoc;
  24. DWORD dwScmId;
  25. };
  26. struct SRotItem
  27. {
  28. WORD _wItemSig;
  29. BOOL _fDontCallApp;
  30. SCMREGKEY _scmregkey;
  31. HAPT _hApt;
  32. };
  33. struct SCliRotHintTable
  34. {
  35. BYTE *_pbHintArray;
  36. HANDLE _hSm;
  37. };
  38. struct SRunningObjectTable
  39. {
  40. LPVOID _vtbl;
  41. SArrayFValue _afvRotList;
  42. SCliRotHintTable _crht;
  43. WORD _wSigRotItem;
  44. };
  45. struct SPerMachineROT
  46. {
  47. SMutexSem _mxs;
  48. DWORD _dwTotalAcctsReg;
  49. SArrayFValue _safvRotAcctTable;
  50. };
  51. struct SScmRotHintTable
  52. {
  53. HANDLE _hSm;
  54. };
  55. struct MNKEQBUF
  56. {
  57. DWORD _cbSize;
  58. CLSID _clsid;
  59. WCHAR _wszName[1];
  60. };
  61. struct IFData
  62. {
  63. DWORD _UNUSED[3];
  64. GUID _oid;
  65. DWORD _UNUSED2;
  66. IID _iid;
  67. DWORD _UNUSED3[4];
  68. WCHAR _wszEndPoint[64];
  69. };
  70. struct SScmRotEntry
  71. {
  72. LPVOID _vtbl;
  73. SScmRotEntry *_sheNext;
  74. DWORD _dwSig;
  75. DWORD _dwScmRotId;
  76. DWORD _dwProcessID;
  77. FILETIME _filetimeLastChange;
  78. IFData *_pifdObject;
  79. MNKEQBUF *_pmkeqbufKey;
  80. IFData *_pifdObjectName;
  81. BYTE _ab[1];
  82. };
  83. struct SScmHashEntry
  84. {
  85. SScmHashEntry * _sheNext;
  86. };
  87. struct SScmHashTable
  88. {
  89. DWORD UNUSED;
  90. SScmHashEntry **_apsheHashTable;
  91. DWORD _ndwHashTableSize;
  92. DWORD _ndwCount;
  93. };
  94. struct SScmRot
  95. {
  96. SMutexSem _mxs;
  97. DWORD _dwIdCntr;
  98. SScmRotHintTable _rht;
  99. SScmHashTable _sht;
  100. };
  101. struct SRotAcctEntry
  102. {
  103. DWORD UNUSED;
  104. WCHAR *unicodestringSID;
  105. SScmRot *pscmrot;
  106. };