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.

144 lines
2.8 KiB

  1. /*++
  2. Copyright (c) 1992 Microsoft Corporation
  3. Module Name:
  4. regvcls.h
  5. Abstract:
  6. This file contains declarations for data structures
  7. needed for enumerating values under HKEY_CLASSES_ROOT
  8. Author:
  9. Adam Edwards (adamed) 14-Nov-1997
  10. Notes:
  11. --*/
  12. #ifdef LOCAL
  13. #if !defined(_REGVCLS_H_)
  14. #define _REGVCLS_H_
  15. #include "regecls.h"
  16. #define DEFAULT_VALUESTATE_SUBKEY_ALLOC 1
  17. //
  18. // Data types
  19. //
  20. typedef struct _ValueLocation {
  21. DWORD dwOffset;
  22. BOOL fUser;
  23. } ValueLocation;
  24. typedef struct _ValueState {
  25. HKEY hkLogical;
  26. HKEY hkUser;
  27. HKEY hkMachine;
  28. DWORD dwCurrent;
  29. DWORD cValues;
  30. unsigned fIgnoreResetOnRetry : 1;
  31. unsigned fDelete : 1;
  32. ValueLocation* rgIndex;
  33. } ValueState;
  34. //
  35. // Value enumeration methods
  36. //
  37. void ValStateGetPhysicalIndexFromLogical(
  38. ValueState* pValState,
  39. HKEY hkLogicalKey,
  40. DWORD dwLogicalIndex,
  41. PHKEY phkPhysicalKey,
  42. DWORD* pdwPhysicalIndex);
  43. NTSTATUS ValStateSetPhysicalIndexFromLogical(
  44. ValueState* pValState,
  45. DWORD dwLogicalIndex);
  46. void ValStateRelease(ValueState* pValState);
  47. void ValStateReleaseValues(
  48. PKEY_VALUE_BASIC_INFORMATION* ppValueInfo,
  49. DWORD cMaxValues);
  50. NTSTATUS ValStateUpdate(ValueState* pValState);
  51. NTSTATUS ValStateInitialize(
  52. ValueState** ppValState,
  53. HKEY hKey);
  54. BOOL ValStateAddValueToSortedValues(
  55. PKEY_VALUE_BASIC_INFORMATION* ppValueInfo,
  56. LONG lNewValue);
  57. NTSTATUS KeyStateGetValueState(
  58. HKEY hKey,
  59. ValueState** ppValState);
  60. NTSTATUS BaseRegGetClassKeyValueState(
  61. HKEY hKey,
  62. DWORD dwLogicalIndex,
  63. ValueState** ppValueState);
  64. NTSTATUS EnumerateValue(
  65. HKEY hKey,
  66. DWORD dwValue,
  67. PKEY_VALUE_BASIC_INFORMATION pSuggestedBuffer,
  68. DWORD dwSuggestedBufferLength,
  69. PKEY_VALUE_BASIC_INFORMATION* ppResult);
  70. //
  71. // Multiple value query routines
  72. //
  73. NTSTATUS BaseRegQueryMultipleClassKeyValues(
  74. HKEY hKey,
  75. PRVALENT val_list,
  76. DWORD num_vals,
  77. LPSTR lpvalueBuf,
  78. LPDWORD ldwTotsize,
  79. PULONG ldwRequiredLength);
  80. NTSTATUS BaseRegQueryAndMergeValues(
  81. HKEY hkUser,
  82. HKEY hkMachine,
  83. PRVALENT val_list,
  84. DWORD num_vals,
  85. LPSTR lpvalueBuf,
  86. LPDWORD ldwTotsize,
  87. PULONG ldwRequiredLength);
  88. #endif // !defined(_REGVCLS_H_)
  89. #endif LOCAL