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.
 
 
 
 
 
 

101 lines
2.7 KiB

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