da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER START
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The contents of this file are subject to the terms of the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Common Development and Distribution License (the "License").
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You may not use this file except in compliance with the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * or http://www.opensolaris.org/os/licensing.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * See the License for the specific language governing permissions
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and limitations under the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * When distributing Covered Code, include this CDDL HEADER in each
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If applicable, add the following below this CDDL HEADER, with the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * fields enclosed by brackets "[]" replaced with your own identifying
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * information: Portions Copyright [yyyy] [name of copyright owner]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER END
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Use is subject to license terms.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#ifndef _MLSVC_WINREG_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define _MLSVC_WINREG_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Windows Registry (WINREG) RPC interface definition.
3db3f65c6274eb042354801a308c8e9bc4994553amw *
3db3f65c6274eb042354801a308c8e9bc4994553amw * The Windows registry is split into a number of hives, which are divided
3db3f65c6274eb042354801a308c8e9bc4994553amw * by function. The hive names are abbreviated and prefixed by HKEY or HK.
3db3f65c6274eb042354801a308c8e9bc4994553amw *
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_CLASSES_ROOT (HKCR) Information about registered applications
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_CURRENT_USER (HKCU) Settings for the current logged in user.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_LOCAL_MACHINE (HKLM) Settings for all users on the computer.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_USERS (HKU) HKEY_CURRENT_USER subkeys for user accounts.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_CURRENT_CONFIG (HKCC) Runtime configuration information.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_PERFORMANCE_DATA (HKPD) Runtime performance data.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_DYN_DATA (HKDD) Runtime data for Windows 9x applications.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_PERFORMANCE_TEXT (HKPT) Runtime performance information.
3db3f65c6274eb042354801a308c8e9bc4994553amw * HKEY_PERFORMANCE_NLS (HKPN) Runtime performance information.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#include "ndrtypes.ndl"
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows NT */
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_OpenHKCR 0x00
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_OpenHKCU 0x01
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_OpenHKLM 0x02
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_OpenHKPD 0x03
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_OpenHKUsers 0x04
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_Close 0x05
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_CreateKey 0x06
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_DeleteKey 0x07
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_DeleteValue 0x08
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_EnumKey 0x09
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_EnumValue 0x0a
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_FlushKey 0x0b
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_GetKeySec 0x0c
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_LoadKey 0x0d
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_NotifyChange 0x0e
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_OpenKey 0x0f
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_QueryKey 0x10
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_QueryValue 0x11
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_ReplaceKey 0x12
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_RestoreKey 0x13
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_SaveKey 0x14
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_SetKeySec 0x15
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows 2000 */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_CreateValue 0x16
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_UnloadKey 0x17
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_Shutdown 0x18
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as#define WINREG_OPNUM_AbortShutdown 0x19
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define WINREG_OPNUM_GetVersion 0x1a
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_OpenHKCC 0x1b
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_OpenHKDD 0x1c
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_QueryMultiValues 0x1d
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_ShutdownEx 0x1e
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows XP and Windows Server 2003 */
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_SavekeyEx 0x1f
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_OpenHKPT 0x20
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_OpenHKPN 0x21
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/* Windows 2003 SP1 */
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_QueryMultiValues2 0x22
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_OPNUM_DeleteKeyEx 0x23
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_TYPE_NONE 0
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_SZ 1
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_EXPAND_SZ 2
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_BINARY 3
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_DWORD 4
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_DWORD_BIG_ENDIAN 5
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_LINK 6
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_MULTI_SZ 7
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_RESOURCE_LIST 8
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_RESOURCE_DESC 9
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_RESOURCE_REQ_LIST 10
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_QWORD 11
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_QUERY_VALUE 0x00000001
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_SET_VALUE 0x00000002
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_CREATE_KEY 0x00000004
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_ENUMERATE 0x00000008
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_NOTIFY 0x00000010
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_CREATE_LINK 0x00000020
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_KEY64 0x00000100
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACCESS_KEY32 0x00000200
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
8d7e41661dc4633488e93b13363137523ce59977jose borregoCONTEXT_HANDLE(winreg_handle) winreg_handle_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_string_desc {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD length;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD allosize;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR str;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
dc20a3024900c47dd2ee44b9707e6df38f7d62a5astypedef struct winreg_string_desc winreg_string_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Fake Varying/Conformant with a funny conformant.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_value {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD vc_first_is; /* 0 */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD vc_length_is;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego SIZE_IS(vc_length_is)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw BYTE value[ANY_SIZE_ARRAY];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borregostruct winreg_vcs {
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego DWORD vc_first_is; /* 0 */
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego DWORD vc_length_is;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego SIZE_IS(vc_length_is)
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego WORD value[ANY_SIZE_ARRAY];
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego};
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_vcbuf {
3db3f65c6274eb042354801a308c8e9bc4994553amw WORD wclen;
3db3f65c6274eb042354801a308c8e9bc4994553amw WORD wcsize;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego struct winreg_vcs *buf;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amwtypedef struct winreg_vcbuf winreg_vcbuf_t;
3db3f65c6274eb042354801a308c8e9bc4994553amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct file_time {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD low;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD high;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct file_time file_time_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_secdesc {
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright struct winreg_value *sd_buf;
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright DWORD sd_len;
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright DWORD sd_size;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amw
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_OpenHKCR)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_OpenHKCR {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD *server;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_OpenHKCU)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_OpenHKCU {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD *server;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_OpenHKLM)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_OpenHKLM {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD *server;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_OpenHKPD)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_OpenHKPD {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD *server;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_OpenHKUsers)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_OpenHKUsers {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD *server;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_Close)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_Close {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t result_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACTION_NONE 0
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACTION_NEW_KEY 1
3db3f65c6274eb042354801a308c8e9bc4994553amw#define WINREG_ACTION_EXISTING_KEY 2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_CreateKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_CreateKey {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_string_t subkey;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN winreg_string_t keyclass;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD options;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD access_mask;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD *sd;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT winreg_handle_t result_handle;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD *action;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_DeleteKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_DeleteKey {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_string_t subkey;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_DeleteValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_DeleteValue {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_string_t name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amw/*
3db3f65c6274eb042354801a308c8e9bc4994553amw * Some of the OUT parameters are also supplied
3db3f65c6274eb042354801a308c8e9bc4994553amw * as IN parameters but we can ignore them.
3db3f65c6274eb042354801a308c8e9bc4994553amw */
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(WINREG_OPNUM_EnumKey)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_EnumKey {
3db3f65c6274eb042354801a308c8e9bc4994553amw IN winreg_handle_t handle;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego IN DWORD index;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego IN winreg_string_t name_in;
b1352070d318187b41b088da3533692976f3f225Alan Wright IN winreg_string_t *class_in;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego OUT winreg_string_t name_out;
89dc44ce9705974a8bc4a39f1e878a0491a5be61jose borrego OUT winreg_string_t *class_out;
3db3f65c6274eb042354801a308c8e9bc4994553amw INOUT file_time_t *change_time;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Some of the OUT parameters are also supplied
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * as IN parameters but we can ignore them.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_EnumValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_EnumValue {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD index;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw /* IN ignore the remaining input data */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT winreg_vcbuf_t name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD *type;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT struct winreg_value *value;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD *value_size;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD *value_size_total;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_FlushKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_FlushKey {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_GetKeySec)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_GetKeySec {
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright IN winreg_handle_t handle;
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright IN DWORD sec_info;
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright OUT REFERENCE struct winreg_secdesc *sd;
f96bd5c800e73e351b0b6e4bd7f00b578dad29bbAlan Wright OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_NotifyChange)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_NotifyChange {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD watch_subtree;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD notify_filter;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_OpenKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_OpenKey {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_string_t name;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD options;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT winreg_handle_t result_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_QueryKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_QueryKey {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
3db3f65c6274eb042354801a308c8e9bc4994553amw INOUT winreg_string_t name;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD num_subkeys;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD max_subkey_len;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD max_class_len;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD num_values;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD max_value_namelen;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD max_value_len;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD secdesc_size;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT file_time_t last_write_time;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Some of the OUT parameters are also supplied
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * as IN parameters but we can ignore them.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_QueryValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_QueryValue {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_string_t value_name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw /* IN ignore the remaining input data */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD *type;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT struct winreg_value *value;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD *value_size;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD *value_size_total;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asOPERATION(WINREG_OPNUM_SetKeySec)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_SetKeySec {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD access_mask;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD sd;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as};
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_CreateValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_CreateValue {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_string_t name;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN winreg_string_t class;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD options;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw /* IN ignore the remaining input data */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The real structure of shutdown passes some strings, a timeout
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and reboot/shutdown flags but this allows us to accept the call,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * without anything appearing in the log, and return access denied.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_Shutdown)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_Shutdown {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN DWORD ignored;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(WINREG_OPNUM_AbortShutdown)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_AbortShutdown {
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD ignored;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(WINREG_OPNUM_GetVersion)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5asstruct winreg_GetVersion {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as IN winreg_handle_t handle;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD version;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(WINREG_OPNUM_OpenHKCC)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_OpenHKCC {
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD *server;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD access_mask;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT winreg_handle_t handle;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(WINREG_OPNUM_OpenHKDD)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_OpenHKDD {
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD *server;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD access_mask;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT winreg_handle_t handle;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(WINREG_OPNUM_OpenHKPT)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_OpenHKPT {
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD *server;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD access_mask;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT winreg_handle_t handle;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
3db3f65c6274eb042354801a308c8e9bc4994553amw
3db3f65c6274eb042354801a308c8e9bc4994553amwOPERATION(WINREG_OPNUM_OpenHKPN)
3db3f65c6274eb042354801a308c8e9bc4994553amwstruct winreg_OpenHKPN {
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD *server;
3db3f65c6274eb042354801a308c8e9bc4994553amw IN DWORD access_mask;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT winreg_handle_t handle;
3db3f65c6274eb042354801a308c8e9bc4994553amw OUT DWORD status;
3db3f65c6274eb042354801a308c8e9bc4994553amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The WINREG interface.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwINTERFACE(0)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwunion winreg_interface {
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_OpenHKCR)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_OpenHKCR OpenHKCR;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_OpenHKCU)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_OpenHKCU OpenHKCU;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_OpenHKLM)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_OpenHKLM OpenHKLM;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_OpenHKPD)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_OpenHKPD OpenHKPD;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_OpenHKUsers)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_OpenHKUsers OpenHKUsers;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_Close)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_Close Close;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_CreateKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_CreateKey CreateKey;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_DeleteKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_DeleteKey DeleteKey;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_DeleteValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_DeleteValue DeleteValue;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_EnumKey)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_EnumKey EnumKey;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_EnumValue)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_EnumValue EnumValue;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_FlushKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_FlushKey FlushKey;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_GetKeySec)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_GetKeySec GetKeySec;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_NotifyChange)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_NotifyChange NotifyChange;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_OpenKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_OpenKey OpenKey;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_QueryKey)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_QueryKey QueryKey;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_QueryValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_QueryValue QueryValue;
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as CASE(WINREG_OPNUM_SetKeySec)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_SetKeySec SetKeySec;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_CreateValue)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_CreateValue CreateValue;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_Shutdown)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_Shutdown Shutdown;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_AbortShutdown)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_AbortShutdown AbortShutdown;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(WINREG_OPNUM_GetVersion)
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as struct winreg_GetVersion GetVersion;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_OpenHKCC)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_OpenHKCC OpenHKCC;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_OpenHKDD)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_OpenHKDD OpenHKDD;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_OpenHKPT)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_OpenHKPT OpenHKPT;
3db3f65c6274eb042354801a308c8e9bc4994553amw CASE(WINREG_OPNUM_OpenHKPN)
3db3f65c6274eb042354801a308c8e9bc4994553amw struct winreg_OpenHKPN OpenHKPN;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef union winreg_interface winreg_interface_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwEXTERNTYPEINFO(winreg_interface)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#endif /* _MLSVC_WINREG_NDL_ */