102 lines
2.7 KiB
C
102 lines
2.7 KiB
C
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs)
|
|
//
|
|
// Copyright (c) 1985-2000 Microsoft Corporation
|
|
//
|
|
// This file is part of the Microsoft Research IPv6 Network Protocol Stack.
|
|
// You should have received a copy of the Microsoft End-User License Agreement
|
|
// for this software along with this release; see the file "license.txt".
|
|
// If not, please see http://www.research.microsoft.com/msripv6/license.htm,
|
|
// or write to Microsoft Research, One Microsoft Way, Redmond, WA 98052-6399.
|
|
//
|
|
// Abstract:
|
|
//
|
|
// NT registry helper function declarations.
|
|
//
|
|
|
|
|
|
#ifndef NTREG_INCLUDED
|
|
#define NTREG_INCLUDED 1
|
|
|
|
typedef enum {
|
|
OpenRegKeyRead,
|
|
OpenRegKeyCreate,
|
|
OpenRegKeyDeleting
|
|
} OpenRegKeyAction;
|
|
|
|
NTSTATUS
|
|
OpenRegKey(PHANDLE HandlePtr, HANDLE Parent, const WCHAR *KeyName,
|
|
OpenRegKeyAction Action);
|
|
|
|
NTSTATUS
|
|
RegDeleteValue(HANDLE KeyHandle, const WCHAR *ValueName);
|
|
|
|
NTSTATUS
|
|
GetRegDWORDValue(HANDLE KeyHandle, const WCHAR *ValueName, PULONG ValueData);
|
|
|
|
NTSTATUS
|
|
SetRegDWORDValue(HANDLE KeyHandle, const WCHAR *ValueName, ULONG ValueData);
|
|
|
|
NTSTATUS
|
|
SetRegQUADValue(HANDLE KeyHandle, const WCHAR *ValueName,
|
|
const LARGE_INTEGER *ValueData);
|
|
|
|
NTSTATUS
|
|
GetRegIPAddrValue(HANDLE KeyHandle, const WCHAR *ValueName, IPAddr *Addr);
|
|
|
|
NTSTATUS
|
|
SetRegIPAddrValue(HANDLE KeyHandle, const WCHAR *ValueName, IPAddr Addr);
|
|
|
|
#if 0
|
|
|
|
NTSTATUS
|
|
GetRegStringValue(HANDLE KeyHandle, const WCHAR *ValueName,
|
|
PKEY_VALUE_PARTIAL_INFORMATION *ValueData,
|
|
PUSHORT ValueSize);
|
|
|
|
NTSTATUS
|
|
GetRegSZValue(HANDLE KeyHandle, const WCHAR *ValueName,
|
|
PUNICODE_STRING ValueData, PULONG ValueType);
|
|
|
|
NTSTATUS
|
|
GetRegMultiSZValue(HANDLE KeyHandle, const WCHAR *ValueName,
|
|
PUNICODE_STRING ValueData);
|
|
|
|
const WCHAR *
|
|
EnumRegMultiSz(IN const WCHAR *MszString, IN ULONG MszStringLength,
|
|
IN ULONG StringIndex);
|
|
|
|
#endif // 0
|
|
|
|
VOID
|
|
InitRegDWORDParameter(HANDLE RegKey, const WCHAR *ValueName,
|
|
UINT *Value, UINT DefaultValue);
|
|
|
|
VOID
|
|
InitRegQUADParameter(HANDLE RegKey, const WCHAR *ValueName,
|
|
LARGE_INTEGER *Value);
|
|
|
|
extern NTSTATUS
|
|
OpenTopLevelRegKey(const WCHAR *Name,
|
|
OUT HANDLE *RegKey, OpenRegKeyAction Action);
|
|
|
|
extern NTSTATUS
|
|
DeleteTopLevelRegKey(const WCHAR *Name);
|
|
|
|
typedef NTSTATUS
|
|
(*EnumRegKeysCallback)(
|
|
void *Context,
|
|
HANDLE ParentKey,
|
|
WCHAR *SubKeyName);
|
|
|
|
extern NTSTATUS
|
|
EnumRegKeyIndex(HANDLE RegKey, uint Index,
|
|
EnumRegKeysCallback Callback, void *Context);
|
|
|
|
extern NTSTATUS
|
|
EnumRegKeys(HANDLE RegKey, EnumRegKeysCallback Callback, void *Context);
|
|
|
|
extern NTSTATUS
|
|
DeleteRegKey(HANDLE RegKey);
|
|
|
|
#endif // NTREG_INCLUDED
|