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.
852 lines
19 KiB
852 lines
19 KiB
/*++
|
|
|
|
Copyright(c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Regrpc.idl
|
|
|
|
Abstract:
|
|
|
|
This module contains the MIDL definitions for the Win32 Registry
|
|
service.
|
|
|
|
Author:
|
|
|
|
David J. Gilman (davegi) 27-Jan-1992
|
|
|
|
--*/
|
|
|
|
//
|
|
// Interface Attributes
|
|
//
|
|
|
|
[
|
|
uuid( 338CD001-2244-31F1-AAAA-900038001003 ),
|
|
pointer_default( unique ),
|
|
#ifdef __midl
|
|
ms_union,
|
|
#endif // __midl
|
|
version( 1.0 )
|
|
]
|
|
|
|
//
|
|
// Interface Keyword
|
|
//
|
|
|
|
interface winreg
|
|
|
|
//
|
|
// Interface Body
|
|
//
|
|
|
|
{ // Start of interface definition
|
|
|
|
import "imports.idl";
|
|
|
|
|
|
//
|
|
// Context handle for registry keys.
|
|
//
|
|
|
|
typedef [context_handle] HKEY RPC_HKEY;
|
|
typedef RPC_HKEY *PRPC_HKEY;
|
|
|
|
//
|
|
// Server name, binding handles.
|
|
//
|
|
|
|
typedef [handle] PWCHAR PREGISTRY_SERVER_NAME;
|
|
|
|
//
|
|
// RPCable security structures (see winbase.h).
|
|
//
|
|
|
|
typedef struct _RPC_SECURITY_DESCRIPTOR {
|
|
[ size_is( cbInSecurityDescriptor ), length_is( cbOutSecurityDescriptor ) ] PBYTE lpSecurityDescriptor;
|
|
DWORD cbInSecurityDescriptor;
|
|
DWORD cbOutSecurityDescriptor;
|
|
} RPC_SECURITY_DESCRIPTOR, *PRPC_SECURITY_DESCRIPTOR;
|
|
|
|
|
|
typedef struct _RPC_SECURITY_ATTRIBUTES {
|
|
DWORD nLength;
|
|
RPC_SECURITY_DESCRIPTOR RpcSecurityDescriptor;
|
|
BOOLEAN bInheritHandle;
|
|
} RPC_SECURITY_ATTRIBUTES, *PRPC_SECURITY_ATTRIBUTES;
|
|
|
|
//
|
|
// Local function prototypes.
|
|
//
|
|
|
|
[local]
|
|
LONG
|
|
ClosePredefinedHandle(
|
|
[ in ] RPC_HKEY Handle
|
|
);
|
|
|
|
[local]
|
|
BOOL
|
|
CleanupPredefinedHandles(
|
|
);
|
|
|
|
[local]
|
|
BOOL
|
|
InitializeWinreg(
|
|
);
|
|
|
|
[local]
|
|
RPC_HKEY
|
|
MapPredefinedHandle(
|
|
[ in ] RPC_HKEY Handle,
|
|
[ out ] PRPC_HKEY phToClose
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
RemapPredefinedHandle(
|
|
[in] RPC_HKEY Handle,
|
|
[in] RPC_HKEY NewHandle
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
MapSAToRpcSA(
|
|
[ in ] LPSECURITY_ATTRIBUTES lpSA,
|
|
[ out ] PRPC_SECURITY_ATTRIBUTES pRpcSA
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
MapSDToRpcSD(
|
|
[ in ] PSECURITY_DESCRIPTOR lpSD,
|
|
[ in, out ] PRPC_SECURITY_DESCRIPTOR pRpcSD
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
OpenPredefinedKeyForSpecialAccess(
|
|
[ in ] RPC_HKEY Handle,
|
|
[ in ] REGSAM AccessMask,
|
|
[ out ] PRPC_HKEY pKey
|
|
);
|
|
|
|
//
|
|
// Perflib pseudo APIs. Signatures should mirror the real server
|
|
// (i.e.Base...) functions.
|
|
//
|
|
|
|
[local]
|
|
LONG
|
|
PerfRegCloseKey (
|
|
[ in, out ] PRPC_HKEY hKey
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
PerfRegEnumKey (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] DWORD dwIndex,
|
|
[ in, out ] PUNICODE_STRING lpName,
|
|
[ in, out, unique ] LPDWORD lpReserved,
|
|
[ in, out, unique ] PUNICODE_STRING lpClass,
|
|
[ in, out, unique ] PFILETIME lpftLastWriteTime
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
PerfRegQueryInfoKey (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out ] PUNICODE_STRING lpClass,
|
|
[ in, out, unique ] LPDWORD lpReserved,
|
|
[ out ] LPDWORD lpcSubKeys,
|
|
[ out ] LPDWORD lpcbMaxSubKeyLen,
|
|
[ out ] LPDWORD lpcbMaxClassLen,
|
|
[ out ] LPDWORD lpcValues,
|
|
[ out ] LPDWORD lpcbMaxValueNameLen,
|
|
[ out ] LPDWORD lpcbMaxValueLen,
|
|
[ out ] LPDWORD lpcbSecurityDescriptor,
|
|
[ out ] PFILETIME lpftLastWriteTime
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
PerfRegQueryValue (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName,
|
|
[ in, out, unique ] LPDWORD lpReserved,
|
|
[ in, out, unique ] LPDWORD lpType,
|
|
[ in, out, unique, size_is( lpcbData ? *lpcbData : 0 ), length_is ( lpcbLen ? *lpcbLen : 0 ) ] LPBYTE lpData,
|
|
[ in, out, unique ] LPDWORD lpcbData,
|
|
[ in, out, unique ] LPDWORD lpcbLen
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
PerfRegSetValue (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] LPWSTR lpValueName,
|
|
[ in ] DWORD Reserved,
|
|
[ in ] DWORD dwType,
|
|
[ in, size_is( cbData )] LPBYTE lpData,
|
|
[ in ] DWORD cbData
|
|
);
|
|
|
|
[local]
|
|
LONG
|
|
PerfRegEnumValue (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] DWORD dwIndex,
|
|
[ in, out ] PUNICODE_STRING lpValueName,
|
|
[ in, out, unique ] LPDWORD lpReserved,
|
|
[ in, out, unique ] LPDWORD lpType,
|
|
[ in, out, unique, size_is( lpcbData ? *lpcbData : 0 ), length_is ( lpcbLen ? *lpcbLen : 0 ) ] LPBYTE lpData,
|
|
[ in, out, unique ] LPDWORD lpcbData,
|
|
[ in, out, unique ] LPDWORD lpcbLen
|
|
);
|
|
|
|
//
|
|
// RegNotifyChangeKeyValue support functions.
|
|
//
|
|
|
|
[local]
|
|
BOOL
|
|
MakeSemiUniqueName(
|
|
[ out ] PUNICODE_STRING Name,
|
|
[ in ] DWORD Sequence
|
|
);
|
|
|
|
[local]
|
|
BOOL
|
|
InitializeRegNotifyChangeKeyValue(
|
|
);
|
|
|
|
[local]
|
|
BOOL
|
|
CleanDeadClientInfo(
|
|
HKEY hKey
|
|
);
|
|
|
|
[local]
|
|
BOOL
|
|
CleanupRegNotifyChangeKeyValue(
|
|
);
|
|
|
|
//
|
|
//******
|
|
//
|
|
// Local versions of server functions. Make sure these stay in synch
|
|
// with the remote (ssrver) versions below.
|
|
//
|
|
//******
|
|
//
|
|
|
|
//
|
|
// RPC stubs for opening predefined handles.
|
|
//
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenClassesRoot(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenCurrentUser(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenLocalMachine(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenUsers(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenPerformanceData(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenCurrentConfig(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenDynData(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
//
|
|
// API (server) function prototypes.
|
|
//
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegCloseKey(
|
|
[ in, out ] PRPC_HKEY hKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegCreateKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] PUNICODE_STRING lpClass,
|
|
[ in ] DWORD dwOptions,
|
|
[ in ] REGSAM samDesired,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES lpSecurityAttributes,
|
|
[ out ] PRPC_HKEY phkResult,
|
|
[ in, out, unique ] LPDWORD lpdwDisposition
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegDeleteKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegDeleteValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegEnumKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] DWORD dwIndex,
|
|
[ in, out ] PUNICODE_STRING lpName,
|
|
[ in, out, unique ] PUNICODE_STRING lpClass,
|
|
[ in, out, unique ] PFILETIME lpftLastWriteTime
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegEnumValue (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] DWORD dwIndex,
|
|
[ in, out ] PUNICODE_STRING lpValueName,
|
|
[ in, out, unique ] LPDWORD lpType,
|
|
[ in, out, unique, size_is( lpcbData ? *lpcbData : 0 ), length_is ( lpcbLen ? *lpcbLen : 0 ) ] LPBYTE lpData,
|
|
[ in, out, unique ] LPDWORD lpcbData,
|
|
[ in, out, unique ] LPDWORD lpcbLen
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegFlushKey(
|
|
[ in ] RPC_HKEY hKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegGetKeySecurity(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] SECURITY_INFORMATION SecurityInformation,
|
|
[ in, out ] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegLoadKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] PUNICODE_STRING lpFile
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegNotifyChangeKeyValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] BOOLEAN bWatchSubtree,
|
|
[ in ] DWORD dwNotifyFilter,
|
|
[ in ] DWORD hEvent,
|
|
[ in ] PUNICODE_STRING MachineName,
|
|
[ in ] PUNICODE_STRING PipeName,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES pRpcSecurityAttributes
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegOpenKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] DWORD dwOptions,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phkResult
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegQueryInfoKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out ] PUNICODE_STRING lpClass,
|
|
[ out ] LPDWORD lpcSubKeys,
|
|
[ out ] LPDWORD lpcbMaxSubKeyLen,
|
|
[ out ] LPDWORD lpcbMaxClassLen,
|
|
[ out ] LPDWORD lpcValues,
|
|
[ out ] LPDWORD lpcbMaxValueNameLen,
|
|
[ out ] LPDWORD lpcbMaxValueLen,
|
|
[ out ] LPDWORD lpcbSecurityDescriptor,
|
|
[ out ] PFILETIME lpftLastWriteTime
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegQueryValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName,
|
|
[ in, out, unique ] LPDWORD lpType,
|
|
[ in, out, unique, size_is( lpcbData ? *lpcbData : 0 ), length_is ( lpcbLen ? *lpcbLen : 0 ) ] LPBYTE lpData,
|
|
[ in, out, unique ] LPDWORD lpcbData,
|
|
[ in, out, unique ] LPDWORD lpcbLen
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegQueryMultipleValues(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out, size_is(num_vals), length_is(num_vals) ] PRVALENT val_list,
|
|
[ in ] DWORD num_vals,
|
|
[ in, out, unique, size_is(*ldwTotsize), length_is(*ldwTotsize) ] LPSTR lpvalueBuf,
|
|
[ in, out, ref ] LPDWORD ldwTotsize
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegReplaceKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] PUNICODE_STRING lpNewFile,
|
|
[ in ] PUNICODE_STRING lpOldFile
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegRestoreKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpFile,
|
|
[ in ] DWORD Flags
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegSaveKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpFile,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES pSecurityAttributes
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegSetKeySecurity(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] SECURITY_INFORMATION SecurityInformation,
|
|
[ in ] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegSetValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName,
|
|
[ in ] DWORD dwType,
|
|
[ in, size_is( cbData )] LPBYTE lpData,
|
|
[ in ] DWORD cbData
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegUnLoadKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey
|
|
);
|
|
|
|
//
|
|
//******
|
|
//
|
|
// Remote versions of server functions. Make sure these stay in synch
|
|
// with the local versions above.
|
|
//
|
|
//******
|
|
//
|
|
|
|
//
|
|
// RPC stubs for opening predefined handles.
|
|
//
|
|
|
|
error_status_t
|
|
OpenClassesRoot(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
OpenCurrentUser(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
OpenLocalMachine(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
OpenPerformanceData(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
OpenUsers(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
//
|
|
// API (server) function prototypes.
|
|
//
|
|
|
|
error_status_t
|
|
BaseRegCloseKey(
|
|
[ in, out ] PRPC_HKEY hKey
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegCreateKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] PUNICODE_STRING lpClass,
|
|
[ in ] DWORD dwOptions,
|
|
[ in ] REGSAM samDesired,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES lpSecurityAttributes,
|
|
[ out ] PRPC_HKEY phkResult,
|
|
[ in, out, unique ] LPDWORD lpdwDisposition
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegDeleteKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegDeleteValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegEnumKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] DWORD dwIndex,
|
|
[ in, out ] PUNICODE_STRING lpName,
|
|
[ in, out, unique ] PUNICODE_STRING lpClass,
|
|
[ in, out, unique ] PFILETIME lpftLastWriteTime
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegEnumValue (
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] DWORD dwIndex,
|
|
[ in, out ] PUNICODE_STRING lpValueName,
|
|
[ in, out, unique ] LPDWORD lpType,
|
|
[ in, out, unique, size_is( lpcbData ? *lpcbData : 0 ), length_is ( lpcbLen ? *lpcbLen : 0 ) ] LPBYTE lpData,
|
|
[ in, out, unique ] LPDWORD lpcbData,
|
|
[ in, out, unique ] LPDWORD lpcbLen
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegFlushKey(
|
|
[ in ] RPC_HKEY hKey
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegGetKeySecurity(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] SECURITY_INFORMATION SecurityInformation,
|
|
[ in, out ] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegLoadKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] PUNICODE_STRING lpFile
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegNotifyChangeKeyValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] BOOLEAN bWatchSubtree,
|
|
[ in ] DWORD dwNotifyFilter,
|
|
[ in ] DWORD hEvent,
|
|
[ in ] PUNICODE_STRING MachineName,
|
|
[ in ] PUNICODE_STRING PipeName,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES pRpcSecurityAttributes
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegOpenKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] DWORD dwOptions,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phkResult
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegQueryInfoKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out ] PUNICODE_STRING lpClass,
|
|
[ out ] LPDWORD lpcSubKeys,
|
|
[ out ] LPDWORD lpcbMaxSubKeyLen,
|
|
[ out ] LPDWORD lpcbMaxClassLen,
|
|
[ out ] LPDWORD lpcValues,
|
|
[ out ] LPDWORD lpcbMaxValueNameLen,
|
|
[ out ] LPDWORD lpcbMaxValueLen,
|
|
[ out ] LPDWORD lpcbSecurityDescriptor,
|
|
[ out ] PFILETIME lpftLastWriteTime
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegQueryValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName,
|
|
[ in, out, unique ] LPDWORD lpType,
|
|
[ in, out, unique, size_is( lpcbData ? *lpcbData : 0 ), length_is ( lpcbLen ? *lpcbLen : 0 ) ] LPBYTE lpData,
|
|
[ in, out, unique ] LPDWORD lpcbData,
|
|
[ in, out, unique ] LPDWORD lpcbLen
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegReplaceKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey,
|
|
[ in ] PUNICODE_STRING lpNewFile,
|
|
[ in ] PUNICODE_STRING lpOldFile
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegRestoreKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpFile,
|
|
[ in ] DWORD Flags
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegSaveKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpFile,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES pSecurityAttributes
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegSetKeySecurity(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] SECURITY_INFORMATION SecurityInformation,
|
|
[ in ] PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegSetValue(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpValueName,
|
|
[ in ] DWORD dwType,
|
|
[ in, size_is( cbData )] LPBYTE lpData,
|
|
[ in ] DWORD cbData
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegUnLoadKey(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpSubKey
|
|
);
|
|
|
|
//
|
|
// Shutdown APIs.
|
|
//
|
|
|
|
ULONG
|
|
BaseInitiateSystemShutdown(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in, unique ] PUNICODE_STRING lpMessage,
|
|
[ in ] DWORD dwTimeout,
|
|
[ in ] BOOLEAN bForceAppsClosed,
|
|
[ in ] BOOLEAN bRebootAfterShutdown
|
|
);
|
|
|
|
ULONG
|
|
BaseAbortSystemShutdown(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName
|
|
);
|
|
|
|
|
|
//
|
|
// New Remote Registry APIs for Chicago
|
|
//
|
|
|
|
error_status_t
|
|
BaseRegGetVersion(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ out ] LPDWORD lpdwVersion
|
|
);
|
|
|
|
error_status_t
|
|
OpenCurrentConfig(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
OpenDynData(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegQueryMultipleValues(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out, size_is(num_vals), length_is(num_vals) ] PRVALENT val_list,
|
|
[ in ] DWORD num_vals,
|
|
[ in, out, unique, size_is(*ldwTotsize), length_is(*ldwTotsize) ] LPSTR lpvalueBuf,
|
|
[ in, out, ref ] LPDWORD ldwTotsize
|
|
);
|
|
|
|
|
|
//
|
|
// Dragos Sambotin (dragoss) 01/07/1999 - Moved at the end to persist compatibility with NT4 !
|
|
// New Shutdown API .
|
|
//
|
|
ULONG
|
|
BaseInitiateSystemShutdownEx(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in, unique ] PUNICODE_STRING lpMessage,
|
|
[ in ] DWORD dwTimeout,
|
|
[ in ] BOOLEAN bForceAppsClosed,
|
|
[ in ] BOOLEAN bRebootAfterShutdown,
|
|
[ in ] DWORD dwReason
|
|
);
|
|
|
|
[local]
|
|
BOOL
|
|
ShutdownWinreg(
|
|
);
|
|
|
|
//
|
|
// needed for setup in order to save hives in %systemroot%\system32 in the latest format
|
|
//
|
|
error_status_t
|
|
BaseRegSaveKeyEx(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpFile,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES pSecurityAttributes,
|
|
[ in ] DWORD Flags
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegSaveKeyEx(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in ] PUNICODE_STRING lpFile,
|
|
[ in, unique ] PRPC_SECURITY_ATTRIBUTES pSecurityAttributes,
|
|
[ in ] DWORD Flags
|
|
);
|
|
|
|
|
|
//
|
|
// Adding support for HKEY_PERFORMANCE_TEXT and HKEY_PERFORMANCE_NLSTEXT over remote connections
|
|
//
|
|
[local]
|
|
error_status_t
|
|
LocalOpenPerformanceText(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
[local]
|
|
error_status_t
|
|
LocalOpenPerformanceNlsText(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
|
|
error_status_t
|
|
OpenPerformanceText(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
error_status_t
|
|
OpenPerformanceNlsText(
|
|
[ in, unique ] PREGISTRY_SERVER_NAME ServerName,
|
|
[ in ] REGSAM samDesired,
|
|
[ out ] PRPC_HKEY phKey
|
|
);
|
|
|
|
//
|
|
// new to .Net server and XP SP1; Fix DoS attack.
|
|
//
|
|
[local]
|
|
error_status_t
|
|
LocalBaseRegQueryMultipleValues2(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out, size_is(num_vals), length_is(num_vals) ] PRVALENT val_list,
|
|
[ in ] DWORD num_vals,
|
|
[ in, out, unique, size_is(*ldwTotsize), length_is(*ldwTotsize) ] LPSTR lpvalueBuf,
|
|
[ in ] LPDWORD ldwTotsize,
|
|
[ out ] LPDWORD ldwRequiredSize
|
|
);
|
|
|
|
error_status_t
|
|
BaseRegQueryMultipleValues2(
|
|
[ in ] RPC_HKEY hKey,
|
|
[ in, out, size_is(num_vals), length_is(num_vals) ] PRVALENT val_list,
|
|
[ in ] DWORD num_vals,
|
|
[ in, out, unique, size_is(*ldwTotsize), length_is(*ldwTotsize) ] LPSTR lpvalueBuf,
|
|
[ in ] LPDWORD ldwTotsize,
|
|
[ out ] LPDWORD ldwRequiredSize
|
|
);
|
|
|
|
} // End of interface defintion
|