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

/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
regvcls.h
Abstract:
This file contains declarations for data structures
needed for enumerating values under HKEY_CLASSES_ROOT
Author:
Adam Edwards (adamed) 14-Nov-1997
Notes:
--*/
#ifdef LOCAL
#if !defined(_REGVCLS_H_)
#define _REGVCLS_H_
#include "regecls.h"
#define DEFAULT_VALUESTATE_SUBKEY_ALLOC 1
//
// Data types
//
typedef struct _ValueLocation {
DWORD dwOffset;
BOOL fUser;
} ValueLocation;
typedef struct _ValueState {
HKEY hkLogical;
HKEY hkUser;
HKEY hkMachine;
DWORD dwCurrent;
DWORD cValues;
unsigned fIgnoreResetOnRetry : 1;
unsigned fDelete : 1;
ValueLocation* rgIndex;
} ValueState;
//
// Value enumeration methods
//
void ValStateGetPhysicalIndexFromLogical(
ValueState* pValState,
HKEY hkLogicalKey,
DWORD dwLogicalIndex,
PHKEY phkPhysicalKey,
DWORD* pdwPhysicalIndex);
NTSTATUS ValStateSetPhysicalIndexFromLogical(
ValueState* pValState,
DWORD dwLogicalIndex);
void ValStateRelease(ValueState* pValState);
void ValStateReleaseValues(
PKEY_VALUE_BASIC_INFORMATION* ppValueInfo,
DWORD cMaxValues);
NTSTATUS ValStateUpdate(ValueState* pValState);
NTSTATUS ValStateInitialize(
ValueState** ppValState,
HKEY hKey);
BOOL ValStateAddValueToSortedValues(
PKEY_VALUE_BASIC_INFORMATION* ppValueInfo,
LONG lNewValue);
NTSTATUS KeyStateGetValueState(
HKEY hKey,
ValueState** ppValState);
NTSTATUS BaseRegGetClassKeyValueState(
HKEY hKey,
DWORD dwLogicalIndex,
ValueState** ppValueState);
NTSTATUS EnumerateValue(
HKEY hKey,
DWORD dwValue,
PKEY_VALUE_BASIC_INFORMATION pSuggestedBuffer,
DWORD dwSuggestedBufferLength,
PKEY_VALUE_BASIC_INFORMATION* ppResult);
//
// Multiple value query routines
//
NTSTATUS BaseRegQueryMultipleClassKeyValues(
HKEY hKey,
PRVALENT val_list,
DWORD num_vals,
LPSTR lpvalueBuf,
LPDWORD ldwTotsize,
PULONG ldwRequiredLength);
NTSTATUS BaseRegQueryAndMergeValues(
HKEY hkUser,
HKEY hkMachine,
PRVALENT val_list,
DWORD num_vals,
LPSTR lpvalueBuf,
LPDWORD ldwTotsize,
PULONG ldwRequiredLength);
#endif // !defined(_REGVCLS_H_)
#endif LOCAL