NVDA Helper
In-process and lite high-speed utilities for NVDA
rpcSrv.cpp File Reference
#include <cstdio>
#include <sstream>
#include <rpc.h>
#include <sddl.h>
#include <DbgHelp.h>
#include <remote/nvdaControllerInternal.h>
#include <common/log.h>
#include <remote/vbufRemote.h>
#include <remote/displayModelRemote.h>
#include <remote/NvdaInProcUtils.h>
#include "rpcSrv.h"

Go to the source code of this file.

Typedefs

typedef RPC_STATUS(RPC_ENTRY * RpcServerRegisterIf3_functype) (RPC_IF_HANDLE, UUID __RPC_FAR *, RPC_MGR_EPV __RPC_FAR *, unsigned int, unsigned int, unsigned int, RPC_IF_CALLBACK_FN __RPC_FAR *, void __RPC_FAR *)
 

Functions

void *__RPC_USER midl_user_allocate (size_t size)
 
void __RPC_USER midl_user_free (void *p)
 
RPC_STATUS rpcSrv_initialize ()
 
void rpcSrv_terminate ()
 
error_status_t nvdaInProcUtils_registerNVDAProcess (handle_t bindingHandle, nvdaRegistrationHandle_t *registrationHandle)
 
error_status_t nvdaInProcUtils_unregisterNVDAProcess (nvdaRegistrationHandle_t *registrationHandle)
 
void __RPC_USER nvdaRegistrationHandle_t_rundown (nvdaRegistrationHandle_t registrationHandle)
 
error_status_t nvdaInProcUtils_getActiveObject (handle_t bindingHandle, const wchar_t *progid, IUnknown **ppUnknown)
 
LONG WINAPI crashHandler (LPEXCEPTION_POINTERS exceptionInfo)
 
error_status_t nvdaInProcUtils_dumpOnCrash (handle_t bindingHandle, const wchar_t *path)
 

Variables

RPC_IF_HANDLE availableInterfaces []
 
HANDLE nvdaUnregisteredEvent =NULL
 
RPC_BINDING_VECTOR * bindingVector
 
UUID nvdaInprocUuid
 
std::wstring minidumpPath
 

Typedef Documentation

◆ RpcServerRegisterIf3_functype

typedef RPC_STATUS(RPC_ENTRY * RpcServerRegisterIf3_functype) (RPC_IF_HANDLE, UUID __RPC_FAR *, RPC_MGR_EPV __RPC_FAR *, unsigned int, unsigned int, unsigned int, RPC_IF_CALLBACK_FN __RPC_FAR *, void __RPC_FAR *)

Function Documentation

◆ midl_user_allocate()

void *__RPC_USER midl_user_allocate ( size_t size)

◆ midl_user_free()

void __RPC_USER midl_user_free ( void * p)

◆ rpcSrv_initialize()

◆ rpcSrv_terminate()

◆ nvdaInProcUtils_registerNVDAProcess()

error_status_t nvdaInProcUtils_registerNVDAProcess ( handle_t bindingHandle,
nvdaRegistrationHandle_t * registrationHandle )

References nvdaUnregisteredEvent.

◆ nvdaInProcUtils_unregisterNVDAProcess()

error_status_t nvdaInProcUtils_unregisterNVDAProcess ( nvdaRegistrationHandle_t * registrationHandle)

◆ nvdaRegistrationHandle_t_rundown()

void __RPC_USER nvdaRegistrationHandle_t_rundown ( nvdaRegistrationHandle_t registrationHandle)

◆ nvdaInProcUtils_getActiveObject()

error_status_t nvdaInProcUtils_getActiveObject ( handle_t bindingHandle,
const wchar_t * progid,
IUnknown ** ppUnknown )

References HRESULT(), and LOG_DEBUGWARNING.

◆ crashHandler()

LONG WINAPI crashHandler ( LPEXCEPTION_POINTERS exceptionInfo)

References minidumpPath.

Referenced by nvdaInProcUtils_dumpOnCrash().

◆ nvdaInProcUtils_dumpOnCrash()

error_status_t nvdaInProcUtils_dumpOnCrash ( handle_t bindingHandle,
const wchar_t * path )

References crashHandler(), and minidumpPath.

Variable Documentation

◆ availableInterfaces

RPC_IF_HANDLE availableInterfaces[]
Initial value:
={
nvdaInProcUtils_NvdaInProcUtils_v1_0_s_ifspec,
displayModelRemote_DisplayModel_v1_0_s_ifspec,
VBufRemote_VBuf_v2_0_s_ifspec,
}

Referenced by rpcSrv_initialize(), and rpcSrv_terminate().

◆ nvdaUnregisteredEvent

◆ bindingVector

RPC_BINDING_VECTOR* bindingVector

◆ nvdaInprocUuid

UUID nvdaInprocUuid

◆ minidumpPath

std::wstring minidumpPath