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
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|