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