Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS Winlogon * FILE: base/system/winlogon/rpcserver.c * PURPOSE: RPC server interface for the remote registry calls * PROGRAMMERS: Eric Kohl */
/* INCLUDES ******************************************************************/
#include "winlogon.h"
#include <rpc.h>#include <winreg_s.h>
/* FUNCTIONS *****************************************************************/
BOOLStartRpcServer(VOID){ RPC_STATUS Status;
TRACE("StartRpcServer() called\n");
Status = RpcServerUseProtseqEpW(L"ncacn_np", RPC_C_PROTSEQ_MAX_REQS_DEFAULT, L"\\pipe\\winreg", NULL); if (Status != RPC_S_OK) { ERR("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status); return FALSE; }
Status = RpcServerRegisterIf(winreg_v1_0_s_ifspec, NULL, NULL); if (Status != RPC_S_OK) { ERR("RpcServerRegisterIf() failed (Status %lx)\n", Status); return FALSE; }
Status = RpcServerListen(1, 20, TRUE); if (Status != RPC_S_OK) { ERR("RpcServerListen() failed (Status %lx)\n", Status); return FALSE; }
TRACE("StartRpcServer() done\n"); return TRUE;}
void __RPC_FAR * __RPC_USER MIDL_user_allocate(SIZE_T len){ return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);}
void __RPC_USER MIDL_user_free(void __RPC_FAR * ptr){ HeapFree(GetProcessHeap(), 0, ptr);}
void __RPC_USER RPC_HKEY_rundown(RPC_HKEY hSCObject){}
/* Function 0 */error_status_tWINAPIOpenClassesRoot( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 1 */error_status_tWINAPIOpenCurrentUser( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 2 */error_status_tWINAPIOpenLocalMachine( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 3 */error_status_tWINAPIOpenPerformanceData( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 4 */error_status_tWINAPIOpenUsers( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 5 */error_status_tWINAPIBaseRegCloseKey( PRPC_HKEY hKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 6 */error_status_tWINAPIBaseRegCreateKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey, PRPC_UNICODE_STRING lpClass, DWORD dwOptions, REGSAM samDesired, PRPC_SECURITY_ATTRIBUTES lpSecurityAttributes, PRPC_HKEY phkResult, LPDWORD lpdwDisposition){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 7 */error_status_tWINAPIBaseRegDeleteKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 8 */error_status_tWINAPIBaseRegDeleteValue( RPC_HKEY hKey, PRPC_UNICODE_STRING lpValueName){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 9 */error_status_tWINAPIBaseRegEnumKey( RPC_HKEY hKey, DWORD dwIndex, PRPC_UNICODE_STRING lpNameIn, PRPC_UNICODE_STRING lpNameOut, PRPC_UNICODE_STRING lpClassIn, PRPC_UNICODE_STRING *lplpClassOut, PFILETIME lpftLastWriteTime){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 10 */error_status_tWINAPIBaseRegEnumValue( RPC_HKEY hKey, DWORD dwIndex, PRPC_UNICODE_STRING lpValueNameIn, PRPC_UNICODE_STRING lpValueNameOut, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData, LPDWORD lpcbLen){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 11 */error_status_t__stdcallBaseRegFlushKey( RPC_HKEY hKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 12 */error_status_t__stdcallBaseRegGetKeySecurity( RPC_HKEY hKey, SECURITY_INFORMATION SecurityInformation, PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptorIn, PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptorOut){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 13 */error_status_t__stdcallBaseRegLoadKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey, PRPC_UNICODE_STRING lpFile){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 14 - Not used on wire */void__stdcallBaseRegNotifyChangeKeyValue( handle_t IDL_handle){ TRACE("\n");}
/* Function 15 */error_status_t__stdcallBaseRegOpenKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey, DWORD dwOptions, REGSAM samDesired, PRPC_HKEY phkResult){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 16 */error_status_t__stdcallBaseRegQueryInfoKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpClassIn, PRPC_UNICODE_STRING lpClassOut, LPDWORD lpcSubKeys, LPDWORD lpcbMaxSubKeyLen, LPDWORD lpcbMaxClassLen, LPDWORD lpcValues, LPDWORD lpcbMaxValueNameLen, LPDWORD lpcbMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 17 */error_status_t__stdcallBaseRegQueryValue( RPC_HKEY hKey, PRPC_UNICODE_STRING lpValueName, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData, LPDWORD lpcbLen){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 18 */error_status_t__stdcallBaseRegReplaceKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey, PRPC_UNICODE_STRING lpNewFile, PRPC_UNICODE_STRING lpOldFile){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 19 */error_status_t__stdcallBaseRegRestoreKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpFile, DWORD Flags){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 20 */error_status_t__stdcallBaseRegSaveKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpFile, PRPC_SECURITY_ATTRIBUTES pSecurityAttributes){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 21 */error_status_t__stdcallBaseRegSetKeySecurity( RPC_HKEY hKey, SECURITY_INFORMATION SecurityInformation, PRPC_SECURITY_DESCRIPTOR pRpcSecurityDescriptor){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 22 */error_status_t__stdcallBaseRegSetValue( RPC_HKEY hKey, PRPC_UNICODE_STRING lpValueName, DWORD dwType, LPBYTE lpData, DWORD cbData){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 23 */error_status_t__stdcallBaseRegUnLoadKey( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 24 */ULONG__stdcallBaseInitiateSystemShutdown( PREGISTRY_SERVER_NAME ServerName, PRPC_UNICODE_STRING lpMessage, ULONG dwTimeout, BOOLEAN bForceAppsClosed, BOOLEAN bRebootAfterShutdown){ TRACE("BaseInitiateSystemShutdown()\n"); return BaseInitiateSystemShutdownEx(ServerName, lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown, 0);}
/* Function 25 */ULONG__stdcallBaseAbortSystemShutdown( PREGISTRY_SERVER_NAME ServerName){ TRACE("BaseAbortSystemShutdown()\n");
//FIXME: Verify that the caller actually has the correct privileges
return TerminateSystemShutdown();}
/* Function 26 */error_status_t__stdcallBaseRegGetVersion( RPC_HKEY hKey, LPDWORD lpdwVersion){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 27 */error_status_t__stdcallOpenCurrentConfig( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 28 - Not used on wire */void__stdcallOpenDynData( handle_t IDL_handle){ TRACE("\n");}
/* Function 29 */error_status_t__stdcallBaseRegQueryMultipleValues( RPC_HKEY hKey, PRVALENT val_listIn, PRVALENT val_listOut, DWORD num_vals, char *lpvalueBuf, LPDWORD ldwTotsize){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 30 */ULONG__stdcallBaseInitiateSystemShutdownEx( PREGISTRY_SERVER_NAME ServerName, PRPC_UNICODE_STRING lpMessage, ULONG dwTimeout, BOOLEAN bForceAppsClosed, BOOLEAN bRebootAfterShutdown, ULONG dwReason){ TRACE("BaseInitiateSystemShutdownEx()\n"); TRACE(" Message: %wZ\n", lpMessage); TRACE(" Timeout: %lu\n", dwTimeout); TRACE(" Force: %d\n", bForceAppsClosed); TRACE(" Reboot: %d\n", bRebootAfterShutdown); TRACE(" Reason: %lu\n", dwReason);
//FIXME: Verify that the caller actually has the correct privileges
return StartSystemShutdown((PUNICODE_STRING)lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown, dwReason);}
/* Function 31 */error_status_t__stdcallBaseRegSaveKeyEx( RPC_HKEY hKey, PRPC_UNICODE_STRING lpFile, PRPC_SECURITY_ATTRIBUTES pSecurityAttributes, DWORD Flags){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 32 */error_status_t__stdcallOpenPerformanceText( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 33 */error_status_t__stdcallOpenPerformanceNlsText( PREGISTRY_SERVER_NAME ServerName, REGSAM samDesired, PRPC_HKEY phKey){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 34 */error_status_t__stdcallBaseRegQueryMultipleValues2( RPC_HKEY hKey, PRVALENT val_listIn, PRVALENT val_listOut, DWORD num_vals, char *lpvalueBuf, LPDWORD ldwTotsize, LPDWORD ldwRequiredSize){ TRACE("\n"); return ERROR_SUCCESS;}
/* Function 35 */error_status_t__stdcallBaseRegDeleteKeyEx( RPC_HKEY hKey, PRPC_UNICODE_STRING lpSubKey, REGSAM AccessMask, DWORD Reserved){ TRACE("\n"); return ERROR_SUCCESS;}
/* EOF */