1da6c28aaSamw/* 2da6c28aaSamw * CDDL HEADER START 3da6c28aaSamw * 4da6c28aaSamw * The contents of this file are subject to the terms of the 5da6c28aaSamw * Common Development and Distribution License (the "License"). 6da6c28aaSamw * You may not use this file except in compliance with the License. 7da6c28aaSamw * 8da6c28aaSamw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9da6c28aaSamw * or http://www.opensolaris.org/os/licensing. 10da6c28aaSamw * See the License for the specific language governing permissions 11da6c28aaSamw * and limitations under the License. 12da6c28aaSamw * 13da6c28aaSamw * When distributing Covered Code, include this CDDL HEADER in each 14da6c28aaSamw * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15da6c28aaSamw * If applicable, add the following below this CDDL HEADER, with the 16da6c28aaSamw * fields enclosed by brackets "[]" replaced with your own identifying 17da6c28aaSamw * information: Portions Copyright [yyyy] [name of copyright owner] 18da6c28aaSamw * 19da6c28aaSamw * CDDL HEADER END 20da6c28aaSamw */ 21da6c28aaSamw/* 22*f96bd5c8SAlan Wright * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 23da6c28aaSamw * Use is subject to license terms. 24da6c28aaSamw */ 25da6c28aaSamw 26da6c28aaSamw#ifndef _MLSVC_WINREG_NDL_ 27da6c28aaSamw#define _MLSVC_WINREG_NDL_ 28da6c28aaSamw 29da6c28aaSamw/* 30da6c28aaSamw * Windows Registry (WINREG) RPC interface definition. 313db3f65cSamw * 323db3f65cSamw * The Windows registry is split into a number of hives, which are divided 333db3f65cSamw * by function. The hive names are abbreviated and prefixed by HKEY or HK. 343db3f65cSamw * 353db3f65cSamw * HKEY_CLASSES_ROOT (HKCR) Information about registered applications 363db3f65cSamw * HKEY_CURRENT_USER (HKCU) Settings for the current logged in user. 373db3f65cSamw * HKEY_LOCAL_MACHINE (HKLM) Settings for all users on the computer. 383db3f65cSamw * HKEY_USERS (HKU) HKEY_CURRENT_USER subkeys for user accounts. 393db3f65cSamw * HKEY_CURRENT_CONFIG (HKCC) Runtime configuration information. 403db3f65cSamw * HKEY_PERFORMANCE_DATA (HKPD) Runtime performance data. 413db3f65cSamw * HKEY_DYN_DATA (HKDD) Runtime data for Windows 9x applications. 423db3f65cSamw * HKEY_PERFORMANCE_TEXT (HKPT) Runtime performance information. 433db3f65cSamw * HKEY_PERFORMANCE_NLS (HKPN) Runtime performance information. 44da6c28aaSamw */ 45da6c28aaSamw 46da6c28aaSamw#include "ndrtypes.ndl" 47da6c28aaSamw 483db3f65cSamw/* Windows NT */ 49dc20a302Sas200622#define WINREG_OPNUM_OpenHKCR 0x00 50dc20a302Sas200622#define WINREG_OPNUM_OpenHKCU 0x01 51da6c28aaSamw#define WINREG_OPNUM_OpenHKLM 0x02 52dc20a302Sas200622#define WINREG_OPNUM_OpenHKPD 0x03 53da6c28aaSamw#define WINREG_OPNUM_OpenHKUsers 0x04 54da6c28aaSamw#define WINREG_OPNUM_Close 0x05 55da6c28aaSamw#define WINREG_OPNUM_CreateKey 0x06 56da6c28aaSamw#define WINREG_OPNUM_DeleteKey 0x07 57da6c28aaSamw#define WINREG_OPNUM_DeleteValue 0x08 58da6c28aaSamw#define WINREG_OPNUM_EnumKey 0x09 59da6c28aaSamw#define WINREG_OPNUM_EnumValue 0x0a 60da6c28aaSamw#define WINREG_OPNUM_FlushKey 0x0b 61da6c28aaSamw#define WINREG_OPNUM_GetKeySec 0x0c 62dc20a302Sas200622#define WINREG_OPNUM_LoadKey 0x0d 63dc20a302Sas200622#define WINREG_OPNUM_NotifyChange 0x0e 64da6c28aaSamw#define WINREG_OPNUM_OpenKey 0x0f 65da6c28aaSamw#define WINREG_OPNUM_QueryKey 0x10 66da6c28aaSamw#define WINREG_OPNUM_QueryValue 0x11 67dc20a302Sas200622#define WINREG_OPNUM_ReplaceKey 0x12 68dc20a302Sas200622#define WINREG_OPNUM_RestoreKey 0x13 69dc20a302Sas200622#define WINREG_OPNUM_SaveKey 0x14 70da6c28aaSamw#define WINREG_OPNUM_SetKeySec 0x15 713db3f65cSamw 723db3f65cSamw/* Windows 2000 */ 73da6c28aaSamw#define WINREG_OPNUM_CreateValue 0x16 74dc20a302Sas200622#define WINREG_OPNUM_UnloadKey 0x17 75da6c28aaSamw#define WINREG_OPNUM_Shutdown 0x18 76dc20a302Sas200622#define WINREG_OPNUM_AbortShutdown 0x19 77da6c28aaSamw#define WINREG_OPNUM_GetVersion 0x1a 783db3f65cSamw#define WINREG_OPNUM_OpenHKCC 0x1b 793db3f65cSamw#define WINREG_OPNUM_OpenHKDD 0x1c 803db3f65cSamw#define WINREG_OPNUM_QueryMultiValues 0x1d 813db3f65cSamw#define WINREG_OPNUM_ShutdownEx 0x1e 823db3f65cSamw 833db3f65cSamw/* Windows XP and Windows Server 2003 */ 843db3f65cSamw#define WINREG_OPNUM_SavekeyEx 0x1f 853db3f65cSamw#define WINREG_OPNUM_OpenHKPT 0x20 863db3f65cSamw#define WINREG_OPNUM_OpenHKPN 0x21 873db3f65cSamw 883db3f65cSamw/* Windows 2003 SP1 */ 893db3f65cSamw#define WINREG_OPNUM_QueryMultiValues2 0x22 903db3f65cSamw#define WINREG_OPNUM_DeleteKeyEx 0x23 913db3f65cSamw 923db3f65cSamw#define WINREG_TYPE_NONE 0 933db3f65cSamw#define WINREG_SZ 1 943db3f65cSamw#define WINREG_EXPAND_SZ 2 953db3f65cSamw#define WINREG_BINARY 3 963db3f65cSamw#define WINREG_DWORD 4 973db3f65cSamw#define WINREG_DWORD_BIG_ENDIAN 5 983db3f65cSamw#define WINREG_LINK 6 993db3f65cSamw#define WINREG_MULTI_SZ 7 1003db3f65cSamw#define WINREG_RESOURCE_LIST 8 1013db3f65cSamw#define WINREG_RESOURCE_DESC 9 1023db3f65cSamw#define WINREG_RESOURCE_REQ_LIST 10 1033db3f65cSamw#define WINREG_QWORD 11 1043db3f65cSamw 1053db3f65cSamw#define WINREG_ACCESS_QUERY_VALUE 0x00000001 1063db3f65cSamw#define WINREG_ACCESS_SET_VALUE 0x00000002 1073db3f65cSamw#define WINREG_ACCESS_CREATE_KEY 0x00000004 1083db3f65cSamw#define WINREG_ACCESS_ENUMERATE 0x00000008 1093db3f65cSamw#define WINREG_ACCESS_NOTIFY 0x00000010 1103db3f65cSamw#define WINREG_ACCESS_CREATE_LINK 0x00000020 1113db3f65cSamw#define WINREG_ACCESS_KEY64 0x00000100 1123db3f65cSamw#define WINREG_ACCESS_KEY32 0x00000200 113da6c28aaSamw 1148d7e4166Sjose borregoCONTEXT_HANDLE(winreg_handle) winreg_handle_t; 115da6c28aaSamw 116dc20a302Sas200622struct winreg_string_desc { 117da6c28aaSamw WORD length; 118da6c28aaSamw WORD allosize; 119da6c28aaSamw LPTSTR str; 120da6c28aaSamw}; 121dc20a302Sas200622typedef struct winreg_string_desc winreg_string_t; 122da6c28aaSamw 123da6c28aaSamw/* 124da6c28aaSamw * Fake Varying/Conformant with a funny conformant. 125da6c28aaSamw */ 126dc20a302Sas200622struct winreg_value { 127da6c28aaSamw DWORD vc_first_is; /* 0 */ 128da6c28aaSamw DWORD vc_length_is; 129da6c28aaSamw SIZE_IS(vc_length_is) 130da6c28aaSamw BYTE value[ANY_SIZE_ARRAY]; 131da6c28aaSamw}; 132da6c28aaSamw 13389dc44ceSjose borregostruct winreg_vcs { 13489dc44ceSjose borrego DWORD vc_first_is; /* 0 */ 13589dc44ceSjose borrego DWORD vc_length_is; 13689dc44ceSjose borrego SIZE_IS(vc_length_is) 13789dc44ceSjose borrego WORD value[ANY_SIZE_ARRAY]; 13889dc44ceSjose borrego}; 13989dc44ceSjose borrego 1403db3f65cSamwstruct winreg_vcbuf { 1413db3f65cSamw WORD wclen; 1423db3f65cSamw WORD wcsize; 14389dc44ceSjose borrego struct winreg_vcs *buf; 1443db3f65cSamw}; 1453db3f65cSamwtypedef struct winreg_vcbuf winreg_vcbuf_t; 1463db3f65cSamw 147da6c28aaSamwstruct file_time { 148da6c28aaSamw DWORD low; 149da6c28aaSamw DWORD high; 150da6c28aaSamw}; 151da6c28aaSamwtypedef struct file_time file_time_t; 152da6c28aaSamw 1533db3f65cSamwstruct winreg_secdesc { 154*f96bd5c8SAlan Wright struct winreg_value *sd_buf; 155*f96bd5c8SAlan Wright DWORD sd_len; 156*f96bd5c8SAlan Wright DWORD sd_size; 1573db3f65cSamw}; 1583db3f65cSamw 159dc20a302Sas200622OPERATION(WINREG_OPNUM_OpenHKCR) 160dc20a302Sas200622struct winreg_OpenHKCR { 161dc20a302Sas200622 IN DWORD *server; 162da6c28aaSamw IN DWORD access_mask; 163dc20a302Sas200622 OUT winreg_handle_t handle; 164da6c28aaSamw OUT DWORD status; 165da6c28aaSamw}; 166da6c28aaSamw 167dc20a302Sas200622OPERATION(WINREG_OPNUM_OpenHKCU) 168dc20a302Sas200622struct winreg_OpenHKCU { 169dc20a302Sas200622 IN DWORD *server; 170dc20a302Sas200622 IN DWORD access_mask; 171dc20a302Sas200622 OUT winreg_handle_t handle; 172dc20a302Sas200622 OUT DWORD status; 173dc20a302Sas200622}; 174dc20a302Sas200622 175dc20a302Sas200622OPERATION(WINREG_OPNUM_OpenHKLM) 176dc20a302Sas200622struct winreg_OpenHKLM { 177dc20a302Sas200622 IN DWORD *server; 178dc20a302Sas200622 IN DWORD access_mask; 179dc20a302Sas200622 OUT winreg_handle_t handle; 180dc20a302Sas200622 OUT DWORD status; 181dc20a302Sas200622}; 182dc20a302Sas200622 183dc20a302Sas200622OPERATION(WINREG_OPNUM_OpenHKPD) 184dc20a302Sas200622struct winreg_OpenHKPD { 185dc20a302Sas200622 IN DWORD *server; 186dc20a302Sas200622 IN DWORD access_mask; 187dc20a302Sas200622 OUT winreg_handle_t handle; 188dc20a302Sas200622 OUT DWORD status; 189dc20a302Sas200622}; 190da6c28aaSamw 191da6c28aaSamwOPERATION(WINREG_OPNUM_OpenHKUsers) 192dc20a302Sas200622struct winreg_OpenHKUsers { 193dc20a302Sas200622 IN DWORD *server; 194da6c28aaSamw IN DWORD access_mask; 195dc20a302Sas200622 OUT winreg_handle_t handle; 196da6c28aaSamw OUT DWORD status; 197da6c28aaSamw}; 198da6c28aaSamw 199da6c28aaSamw 200da6c28aaSamwOPERATION(WINREG_OPNUM_Close) 201dc20a302Sas200622struct winreg_Close { 202dc20a302Sas200622 IN winreg_handle_t handle; 203dc20a302Sas200622 OUT winreg_handle_t result_handle; 204da6c28aaSamw OUT DWORD status; 205da6c28aaSamw}; 206da6c28aaSamw 2073db3f65cSamw#define WINREG_ACTION_NONE 0 2083db3f65cSamw#define WINREG_ACTION_NEW_KEY 1 2093db3f65cSamw#define WINREG_ACTION_EXISTING_KEY 2 210da6c28aaSamw 211da6c28aaSamwOPERATION(WINREG_OPNUM_CreateKey) 212dc20a302Sas200622struct winreg_CreateKey { 213dc20a302Sas200622 IN winreg_handle_t handle; 214dc20a302Sas200622 IN winreg_string_t subkey; 2153db3f65cSamw IN winreg_string_t keyclass; 2163db3f65cSamw IN DWORD options; 2173db3f65cSamw IN DWORD access_mask; 2183db3f65cSamw IN DWORD *sd; 2193db3f65cSamw OUT winreg_handle_t result_handle; 2203db3f65cSamw OUT DWORD *action; 221da6c28aaSamw OUT DWORD status; 222da6c28aaSamw}; 223da6c28aaSamw 224da6c28aaSamw 225da6c28aaSamwOPERATION(WINREG_OPNUM_DeleteKey) 226dc20a302Sas200622struct winreg_DeleteKey { 227dc20a302Sas200622 IN winreg_handle_t handle; 228dc20a302Sas200622 IN winreg_string_t subkey; 229da6c28aaSamw OUT DWORD status; 230da6c28aaSamw}; 231da6c28aaSamw 232da6c28aaSamw 233da6c28aaSamwOPERATION(WINREG_OPNUM_DeleteValue) 234dc20a302Sas200622struct winreg_DeleteValue { 235dc20a302Sas200622 IN winreg_handle_t handle; 236dc20a302Sas200622 IN winreg_string_t name; 237da6c28aaSamw OUT DWORD status; 238da6c28aaSamw}; 239da6c28aaSamw 2403db3f65cSamw/* 2413db3f65cSamw * Some of the OUT parameters are also supplied 2423db3f65cSamw * as IN parameters but we can ignore them. 2433db3f65cSamw */ 2443db3f65cSamwOPERATION(WINREG_OPNUM_EnumKey) 2453db3f65cSamwstruct winreg_EnumKey { 2463db3f65cSamw IN winreg_handle_t handle; 2473db3f65cSamw IN DWORD index; 24889dc44ceSjose borrego IN winreg_string_t name_in; 249b1352070SAlan Wright IN winreg_string_t *class_in; 25089dc44ceSjose borrego OUT winreg_string_t name_out; 25189dc44ceSjose borrego OUT winreg_string_t *class_out; 2523db3f65cSamw INOUT file_time_t *change_time; 2533db3f65cSamw OUT DWORD status; 2543db3f65cSamw}; 255da6c28aaSamw 256da6c28aaSamw/* 257da6c28aaSamw * Some of the OUT parameters are also supplied 258da6c28aaSamw * as IN parameters but we can ignore them. 259da6c28aaSamw */ 260da6c28aaSamwOPERATION(WINREG_OPNUM_EnumValue) 261dc20a302Sas200622struct winreg_EnumValue { 262dc20a302Sas200622 IN winreg_handle_t handle; 263da6c28aaSamw IN DWORD index; 264da6c28aaSamw /* IN ignore the remaining input data */ 265da6c28aaSamw 2663db3f65cSamw OUT winreg_vcbuf_t name; 267da6c28aaSamw OUT DWORD *type; 268dc20a302Sas200622 OUT struct winreg_value *value; 269da6c28aaSamw OUT DWORD *value_size; 270da6c28aaSamw OUT DWORD *value_size_total; 271da6c28aaSamw OUT DWORD status; 272da6c28aaSamw}; 273da6c28aaSamw 274dc20a302Sas200622OPERATION(WINREG_OPNUM_FlushKey) 275dc20a302Sas200622struct winreg_FlushKey { 276dc20a302Sas200622 IN winreg_handle_t handle; 277dc20a302Sas200622 OUT DWORD status; 278dc20a302Sas200622}; 279dc20a302Sas200622 280dc20a302Sas200622OPERATION(WINREG_OPNUM_GetKeySec) 281dc20a302Sas200622struct winreg_GetKeySec { 282dc20a302Sas200622 IN winreg_handle_t handle; 283dc20a302Sas200622 IN DWORD sec_info; 284*f96bd5c8SAlan Wright OUT REFERENCE struct winreg_secdesc *sd; 285dc20a302Sas200622 OUT DWORD status; 286dc20a302Sas200622}; 287dc20a302Sas200622 288dc20a302Sas200622OPERATION(WINREG_OPNUM_NotifyChange) 289dc20a302Sas200622struct winreg_NotifyChange { 290dc20a302Sas200622 IN winreg_handle_t handle; 291dc20a302Sas200622 IN DWORD watch_subtree; 292dc20a302Sas200622 IN DWORD notify_filter; 293dc20a302Sas200622 OUT DWORD status; 294dc20a302Sas200622}; 295da6c28aaSamw 296da6c28aaSamwOPERATION(WINREG_OPNUM_OpenKey) 297dc20a302Sas200622struct winreg_OpenKey { 298dc20a302Sas200622 IN winreg_handle_t handle; 299dc20a302Sas200622 IN winreg_string_t name; 3003db3f65cSamw IN DWORD options; 301da6c28aaSamw IN DWORD access_mask; 302dc20a302Sas200622 OUT winreg_handle_t result_handle; 303da6c28aaSamw OUT DWORD status; 304da6c28aaSamw}; 305da6c28aaSamw 306da6c28aaSamw 307da6c28aaSamwOPERATION(WINREG_OPNUM_QueryKey) 308dc20a302Sas200622struct winreg_QueryKey { 309dc20a302Sas200622 IN winreg_handle_t handle; 3103db3f65cSamw INOUT winreg_string_t name; 3113db3f65cSamw OUT DWORD num_subkeys; 312da6c28aaSamw OUT DWORD max_subkey_len; 313da6c28aaSamw OUT DWORD max_class_len; 3143db3f65cSamw OUT DWORD num_values; 315da6c28aaSamw OUT DWORD max_value_namelen; 316da6c28aaSamw OUT DWORD max_value_len; 3173db3f65cSamw OUT DWORD secdesc_size; 318da6c28aaSamw OUT file_time_t last_write_time; 319da6c28aaSamw OUT DWORD status; 320da6c28aaSamw}; 321da6c28aaSamw 322da6c28aaSamw 323da6c28aaSamw/* 324da6c28aaSamw * Some of the OUT parameters are also supplied 325da6c28aaSamw * as IN parameters but we can ignore them. 326da6c28aaSamw */ 327da6c28aaSamwOPERATION(WINREG_OPNUM_QueryValue) 328dc20a302Sas200622struct winreg_QueryValue { 329dc20a302Sas200622 IN winreg_handle_t handle; 330dc20a302Sas200622 IN winreg_string_t value_name; 331da6c28aaSamw /* IN ignore the remaining input data */ 332da6c28aaSamw 333da6c28aaSamw OUT DWORD *type; 334dc20a302Sas200622 OUT struct winreg_value *value; 335da6c28aaSamw OUT DWORD *value_size; 336da6c28aaSamw OUT DWORD *value_size_total; 337da6c28aaSamw OUT DWORD status; 338da6c28aaSamw}; 339da6c28aaSamw 340da6c28aaSamw 341dc20a302Sas200622OPERATION(WINREG_OPNUM_SetKeySec) 342dc20a302Sas200622struct winreg_SetKeySec { 343dc20a302Sas200622 IN winreg_handle_t handle; 344dc20a302Sas200622 IN DWORD access_mask; 345dc20a302Sas200622 IN DWORD sd; 346dc20a302Sas200622 OUT DWORD status; 347dc20a302Sas200622}; 348dc20a302Sas200622 349da6c28aaSamwOPERATION(WINREG_OPNUM_CreateValue) 350dc20a302Sas200622struct winreg_CreateValue { 351dc20a302Sas200622 IN winreg_handle_t handle; 352dc20a302Sas200622 IN winreg_string_t name; 3533db3f65cSamw IN winreg_string_t class; 3543db3f65cSamw IN DWORD options; 355da6c28aaSamw /* IN ignore the remaining input data */ 356da6c28aaSamw 357da6c28aaSamw OUT DWORD status; 358da6c28aaSamw}; 359da6c28aaSamw 360da6c28aaSamw 361da6c28aaSamw/* 362da6c28aaSamw * The real structure of shutdown passes some strings, a timeout 363da6c28aaSamw * and reboot/shutdown flags but this allows us to accept the call, 364da6c28aaSamw * without anything appearing in the log, and return access denied. 365da6c28aaSamw */ 366da6c28aaSamwOPERATION(WINREG_OPNUM_Shutdown) 367dc20a302Sas200622struct winreg_Shutdown { 368da6c28aaSamw IN DWORD ignored; 369da6c28aaSamw OUT DWORD status; 370da6c28aaSamw}; 371da6c28aaSamw 3723db3f65cSamwOPERATION(WINREG_OPNUM_AbortShutdown) 3733db3f65cSamwstruct winreg_AbortShutdown { 3743db3f65cSamw IN DWORD ignored; 3753db3f65cSamw OUT DWORD status; 3763db3f65cSamw}; 377da6c28aaSamw 378da6c28aaSamwOPERATION(WINREG_OPNUM_GetVersion) 379dc20a302Sas200622struct winreg_GetVersion { 380dc20a302Sas200622 IN winreg_handle_t handle; 381da6c28aaSamw OUT DWORD version; 382da6c28aaSamw OUT DWORD status; 383da6c28aaSamw}; 384da6c28aaSamw 3853db3f65cSamwOPERATION(WINREG_OPNUM_OpenHKCC) 3863db3f65cSamwstruct winreg_OpenHKCC { 3873db3f65cSamw IN DWORD *server; 3883db3f65cSamw IN DWORD access_mask; 3893db3f65cSamw OUT winreg_handle_t handle; 3903db3f65cSamw OUT DWORD status; 3913db3f65cSamw}; 3923db3f65cSamw 3933db3f65cSamwOPERATION(WINREG_OPNUM_OpenHKDD) 3943db3f65cSamwstruct winreg_OpenHKDD { 3953db3f65cSamw IN DWORD *server; 3963db3f65cSamw IN DWORD access_mask; 3973db3f65cSamw OUT winreg_handle_t handle; 3983db3f65cSamw OUT DWORD status; 3993db3f65cSamw}; 4003db3f65cSamw 4013db3f65cSamwOPERATION(WINREG_OPNUM_OpenHKPT) 4023db3f65cSamwstruct winreg_OpenHKPT { 4033db3f65cSamw IN DWORD *server; 4043db3f65cSamw IN DWORD access_mask; 4053db3f65cSamw OUT winreg_handle_t handle; 4063db3f65cSamw OUT DWORD status; 4073db3f65cSamw}; 4083db3f65cSamw 4093db3f65cSamwOPERATION(WINREG_OPNUM_OpenHKPN) 4103db3f65cSamwstruct winreg_OpenHKPN { 4113db3f65cSamw IN DWORD *server; 4123db3f65cSamw IN DWORD access_mask; 4133db3f65cSamw OUT winreg_handle_t handle; 4143db3f65cSamw OUT DWORD status; 4153db3f65cSamw}; 416da6c28aaSamw 417da6c28aaSamw/* 418da6c28aaSamw * The WINREG interface. 419da6c28aaSamw */ 420da6c28aaSamwINTERFACE(0) 421da6c28aaSamwunion winreg_interface { 422dc20a302Sas200622 CASE(WINREG_OPNUM_OpenHKCR) 423dc20a302Sas200622 struct winreg_OpenHKCR OpenHKCR; 424dc20a302Sas200622 CASE(WINREG_OPNUM_OpenHKCU) 425dc20a302Sas200622 struct winreg_OpenHKCU OpenHKCU; 426da6c28aaSamw CASE(WINREG_OPNUM_OpenHKLM) 427dc20a302Sas200622 struct winreg_OpenHKLM OpenHKLM; 428dc20a302Sas200622 CASE(WINREG_OPNUM_OpenHKPD) 429dc20a302Sas200622 struct winreg_OpenHKPD OpenHKPD; 430da6c28aaSamw CASE(WINREG_OPNUM_OpenHKUsers) 431dc20a302Sas200622 struct winreg_OpenHKUsers OpenHKUsers; 432da6c28aaSamw CASE(WINREG_OPNUM_Close) 433dc20a302Sas200622 struct winreg_Close Close; 434da6c28aaSamw CASE(WINREG_OPNUM_CreateKey) 435dc20a302Sas200622 struct winreg_CreateKey CreateKey; 436da6c28aaSamw CASE(WINREG_OPNUM_DeleteKey) 437dc20a302Sas200622 struct winreg_DeleteKey DeleteKey; 438da6c28aaSamw CASE(WINREG_OPNUM_DeleteValue) 439dc20a302Sas200622 struct winreg_DeleteValue DeleteValue; 4403db3f65cSamw CASE(WINREG_OPNUM_EnumKey) 4413db3f65cSamw struct winreg_EnumKey EnumKey; 4423db3f65cSamw CASE(WINREG_OPNUM_EnumValue) 4433db3f65cSamw struct winreg_EnumValue EnumValue; 444dc20a302Sas200622 CASE(WINREG_OPNUM_FlushKey) 445dc20a302Sas200622 struct winreg_FlushKey FlushKey; 446dc20a302Sas200622 CASE(WINREG_OPNUM_GetKeySec) 447dc20a302Sas200622 struct winreg_GetKeySec GetKeySec; 448dc20a302Sas200622 CASE(WINREG_OPNUM_NotifyChange) 449dc20a302Sas200622 struct winreg_NotifyChange NotifyChange; 450da6c28aaSamw CASE(WINREG_OPNUM_OpenKey) 451dc20a302Sas200622 struct winreg_OpenKey OpenKey; 452da6c28aaSamw CASE(WINREG_OPNUM_QueryKey) 453dc20a302Sas200622 struct winreg_QueryKey QueryKey; 454da6c28aaSamw CASE(WINREG_OPNUM_QueryValue) 455dc20a302Sas200622 struct winreg_QueryValue QueryValue; 456dc20a302Sas200622 CASE(WINREG_OPNUM_SetKeySec) 457dc20a302Sas200622 struct winreg_SetKeySec SetKeySec; 458da6c28aaSamw CASE(WINREG_OPNUM_CreateValue) 459dc20a302Sas200622 struct winreg_CreateValue CreateValue; 460da6c28aaSamw CASE(WINREG_OPNUM_Shutdown) 461dc20a302Sas200622 struct winreg_Shutdown Shutdown; 4623db3f65cSamw CASE(WINREG_OPNUM_AbortShutdown) 4633db3f65cSamw struct winreg_AbortShutdown AbortShutdown; 464da6c28aaSamw CASE(WINREG_OPNUM_GetVersion) 465dc20a302Sas200622 struct winreg_GetVersion GetVersion; 4663db3f65cSamw CASE(WINREG_OPNUM_OpenHKCC) 4673db3f65cSamw struct winreg_OpenHKCC OpenHKCC; 4683db3f65cSamw CASE(WINREG_OPNUM_OpenHKDD) 4693db3f65cSamw struct winreg_OpenHKDD OpenHKDD; 4703db3f65cSamw CASE(WINREG_OPNUM_OpenHKPT) 4713db3f65cSamw struct winreg_OpenHKPT OpenHKPT; 4723db3f65cSamw CASE(WINREG_OPNUM_OpenHKPN) 4733db3f65cSamw struct winreg_OpenHKPN OpenHKPN; 474da6c28aaSamw}; 475da6c28aaSamwtypedef union winreg_interface winreg_interface_t; 476da6c28aaSamwEXTERNTYPEINFO(winreg_interface) 477da6c28aaSamw 478da6c28aaSamw#endif /* _MLSVC_WINREG_NDL_ */ 479