Added a bunch of entry points.

Added some stubs and header information.
Fixed some return codes.
This commit is contained in:
Peter Hunnisett 2001-07-11 20:19:06 +00:00 committed by Alexandre Julliard
parent fb57c59245
commit 8cec3cff1e
6 changed files with 370 additions and 20 deletions

View File

@ -7,18 +7,25 @@ import ntdll.dll
debug_channels (ole)
@ stdcall UuidCreate(ptr) UuidCreate
@ stdcall NdrDllRegisterProxy(long ptr ptr) NdrDllRegisterProxy
@ stdcall RpcBindingFromStringBindingA(str ptr) RpcBindingFromStringBindingA
@ stdcall RpcBindingFromStringBindingW(wstr ptr) RpcBindingFromStringBindingW
@ stdcall RpcServerListen(long long long) RpcServerListen
@ stdcall RpcServerUseProtseqEpA(str long str ptr) RpcServerUseProtseqEpA
@ stdcall RpcServerUseProtseqEpW(wstr long wstr ptr) RpcServerUseProtseqEpW
@ stdcall RpcServerUseProtseqEpExA(str long str ptr ptr) RpcServerUseProtseqEpExA
@ stdcall RpcServerUseProtseqEpExW(wstr long wstr ptr ptr) RpcServerUseProtseqEpExW
@ stdcall RpcServerRegisterIf(ptr ptr ptr) RpcServerRegisterIf
@ stdcall RpcServerRegisterIfEx(ptr ptr ptr long long ptr) RpcServerRegisterIfEx
@ stdcall RpcServerRegisterIf2(ptr ptr ptr long long long ptr) RpcServerRegisterIf2
@ stdcall RpcServerRegisterAuthInfoA(str long ptr ptr) RpcServerRegisterAuthInfoA
@ stdcall RpcServerRegisterAuthInfoW(wstr long ptr ptr) RpcServerRegisterAuthInfoW
@ stdcall RpcStringBindingComposeA(str str str str str ptr) RpcStringBindingComposeA
@ stdcall RpcStringBindingComposeW(wstr wstr wstr wstr wstr ptr) RpcStringBindingComposeW
@ stdcall RpcStringFreeA(ptr) RpcStringFreeA
@ stdcall UuidCreate(ptr) UuidCreate
@ stdcall UuidToStringA(ptr ptr) UuidToStringA
@ stub NdrCStdStubBuffer_Release
@ stub NdrDllGetClassObject
@ stub RpcRaiseException
@ stub NdrClientCall
@ stub NdrOleAllocate
@ stub NdrOleFree
@ stub IUnknown_QueryInterface_Proxy
@ stub IUnknown_AddRef_Proxy
@ stub IUnknown_Release_Proxy
@ stub CStdStubBuffer_QueryInterface
@ stub CStdStubBuffer_AddRef
@ stub CStdStubBuffer_Connect
@ -28,4 +35,38 @@ debug_channels (ole)
@ stub CStdStubBuffer_CountRefs
@ stub CStdStubBuffer_DebugServerQueryInterface
@ stub CStdStubBuffer_DebugServerRelease
@ stdcall NdrDllRegisterProxy(long ptr ptr) NdrDllRegisterProxy
@ stub IUnknown_QueryInterface_Proxy
@ stub IUnknown_AddRef_Proxy
@ stub IUnknown_Release_Proxy
@ stub I_RpcGetBuffer
@ stub NdrClientCall
@ stub NdrClientCall2
@ stub NdrConformantVaryingArrayBufferSize
@ stub NdrConformantVaryingArrayMarshall
@ stub NdrConformantVaryingArrayUnmarshall
@ stub NdrConformantStringUnmarshall
@ stub NDRSContextUnmarshall
@ stub NdrConvert
@ stub NdrCStdStubBuffer_Release
@ stub NdrDllGetClassObject
@ stub NdrOleAllocate
@ stub NdrOleFree
@ stub NdrServerContextUnmarshall
@ stub NdrServerInitializeNew
@ stub NdrServerContextMarshall
@ stub RpcBindingFree
@ stub RpcImpersonateClient
@ stub RpcMgmtSetCancelTimeout
@ stub RpcMgmtStopServerListening
@ stub RpcRaiseException
@ stub RpcRevertToSelf
@ stub RpcServerUnregisterIf
@ stub RpcStringFreeW
@ stub UuidIsNil

View File

@ -261,7 +261,7 @@ sizeof((i).ifr_name)+(i).ifr_addr.sa_len)
TRACE("%s\n", debugstr_guid(Uuid));
return S_OK;
return RPC_S_OK;
}
/*************************************************************************
@ -277,7 +277,7 @@ RPC_STATUS WINAPI RpcStringFreeA(unsigned char** String)
{
HeapFree( GetProcessHeap(), 0, *String);
return S_OK;
return RPC_S_OK;
}
/*************************************************************************
@ -297,18 +297,16 @@ RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, unsigned char** StringUuid)
{
*StringUuid = HeapAlloc( GetProcessHeap(), 0, sizeof(char) * 37);
/* FIXME: this should be RPC_S_OUT_OF_MEMORY */
if(!(*StringUuid))
return ERROR_OUTOFMEMORY;
return RPC_S_OUT_OF_MEMORY;
sprintf(*StringUuid, "{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
sprintf(*StringUuid, "{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
Uuid->Data1, Uuid->Data2, Uuid->Data3,
Uuid->Data4[0], Uuid->Data4[1], Uuid->Data4[2],
Uuid->Data4[3], Uuid->Data4[4], Uuid->Data4[5],
Uuid->Data4[6], Uuid->Data4[7] );
return S_OK; /*FIXME: this should be RPC_S_OK */
return RPC_S_OK;
}
/***********************************************************************
@ -318,7 +316,194 @@ HRESULT WINAPI NdrDllRegisterProxy(
HMODULE hDll, /* [in] */
void **pProxyFileList, /* [???] FIXME: const ProxyFileInfo ** */
const CLSID *pclsid /* [in] */
) {
)
{
FIXME("(%x,%p,%s), stub!\n",hDll,pProxyFileList,debugstr_guid(pclsid));
return S_OK;
}
/***********************************************************************
* RpcServerUseProtseqEpA (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor )
{
RPC_POLICY policy;
TRACE( "(%s,%u,%s,%p)\n", Protseq, MaxCalls, Endpoint, SecurityDescriptor );
/* This should provide the default behaviour */
policy.Length = sizeof( policy );
policy.EndpointFlags = 0;
policy.NICFlags = 0;
return RpcServerUseProtseqEpExA( Protseq, MaxCalls, Endpoint, SecurityDescriptor, &policy );
}
/***********************************************************************
* RpcServerUseProtseqEpW (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor )
{
RPC_POLICY policy;
TRACE( "(%s,%u,%s,%p)\n", debugstr_w( Protseq ), MaxCalls, debugstr_w( Endpoint ), SecurityDescriptor );
/* This should provide the default behaviour */
policy.Length = sizeof( policy );
policy.EndpointFlags = 0;
policy.NICFlags = 0;
return RpcServerUseProtseqEpExW( Protseq, MaxCalls, Endpoint, SecurityDescriptor, &policy );
}
/***********************************************************************
* RpcServerUseProtseqEpExA (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpExA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor,
PRPC_POLICY lpPolicy )
{
FIXME( "(%s,%u,%s,%p,{%u,%lu,%lu}): stub\n", Protseq, MaxCalls, Endpoint, SecurityDescriptor,
lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
return RPC_S_PROTSEQ_NOT_SUPPORTED; /* We don't support anything at this point */
}
/***********************************************************************
* RpcServerUseProtseqEpExW (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpExW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor,
PRPC_POLICY lpPolicy )
{
FIXME( "(%s,%u,%s,%p,{%u,%lu,%lu}): stub\n", debugstr_w( Protseq ), MaxCalls, debugstr_w( Endpoint ),
SecurityDescriptor,
lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
return RPC_S_PROTSEQ_NOT_SUPPORTED; /* We don't support anything at this point */
}
/***********************************************************************
* RpcServerRegisterIf (RPCRT4.@)
*/
RPC_STATUS RPC_ENTRY
RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv )
{
/* FIXME: Dump UUID using UuidToStringA */
TRACE( "(%p,%p,%p)\n", IfSpec, MgrTypeUuid, MgrEpv );
return RpcServerRegisterIf2( IfSpec, MgrTypeUuid, MgrEpv, 0, RPC_C_LISTEN_MAX_CALLS_DEFAULT, (UINT)-1, NULL );
}
/***********************************************************************
* RpcServerRegisterIfEx (RPCRT4.@)
*/
RPC_STATUS RPC_ENTRY
RpcServerRegisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
UINT Flags, UINT MaxCalls, RPC_IF_CALLBACK_FN* IfCallbackFn )
{
/* FIXME: Dump UUID using UuidToStringA */
TRACE( "(%p,%p,%p,%u,%u,%p)\n", IfSpec, MgrTypeUuid, MgrEpv, Flags, MaxCalls, IfCallbackFn );
return RpcServerRegisterIf2( IfSpec, MgrTypeUuid, MgrEpv, Flags, MaxCalls, (UINT)-1, IfCallbackFn );
}
/***********************************************************************
* RpcServerRegisterIf2 (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterIf2( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
UINT Flags, UINT MaxCalls, UINT MaxRpcSize, RPC_IF_CALLBACK_FN* IfCallbackFn )
{
/* FIXME: Dump UUID using UuidToStringA */
FIXME( "(%p,%p,%p,%u,%u,%u,%p): stub\n", IfSpec, MgrTypeUuid, MgrEpv, Flags, MaxCalls, MaxRpcSize, IfCallbackFn );
return RPC_S_UNKNOWN_IF; /* I guess this return code is as good as any failure */
}
/***********************************************************************
* RpcServerRegisterAuthInfoA (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterAuthInfoA( LPSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
LPVOID Arg )
{
FIXME( "(%s,%lu,%p,%p): stub\n", ServerPrincName, AuthnSvc, GetKeyFn, Arg );
return RPC_S_UNKNOWN_AUTHN_SERVICE; /* We don't know any authentication services */
}
/***********************************************************************
* RpcServerRegisterAuthInfoW (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterAuthInfoW( LPWSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
LPVOID Arg )
{
FIXME( "(%s,%lu,%p,%p): stub\n", debugstr_w( ServerPrincName ), AuthnSvc, GetKeyFn, Arg );
return RPC_S_UNKNOWN_AUTHN_SERVICE; /* We don't know any authentication services */
}
/***********************************************************************
* RpcServerListen (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait )
{
FIXME( "(%u,%u,%u): stub\n", MinimumCallThreads, MaxCalls, DontWait );
return RPC_S_NO_PROTSEQS_REGISTERED; /* Since we don't allow registration this seems reasonable */
}
/***********************************************************************
* RpcStringBindingComposeA (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
LPSTR Options, LPSTR* StringBinding )
{
FIXME( "(%s,%s,%s,%s,%s,%p): stub\n", ObjUuid, Protseq, NetworkAddr, Endpoint, Options, StringBinding );
*StringBinding = NULL;
return RPC_S_INVALID_STRING_UUID; /* Failure */
}
/***********************************************************************
* RpcStringBindingComposeW (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcStringBindingComposeW( LPWSTR ObjUuid, LPWSTR Protseq, LPWSTR NetworkAddr, LPWSTR Endpoint,
LPWSTR Options, LPWSTR* StringBinding )
{
FIXME( "(%s,%s,%s,%s,%s,%p): stub\n", debugstr_w( ObjUuid ), debugstr_w( Protseq ), debugstr_w( NetworkAddr ),
debugstr_w( Endpoint ), debugstr_w( Options ), StringBinding );
*StringBinding = NULL;
return RPC_S_INVALID_STRING_UUID; /* Failure */
}
/***********************************************************************
* RpcBindingFromStringBindingA (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcBindingFromStringBindingA( LPSTR StringBinding, RPC_BINDING_HANDLE* Binding )
{
FIXME( "(%s,%p): stub\n", StringBinding, Binding );
return RPC_S_INVALID_STRING_BINDING; /* As good as any failure code */
}
/***********************************************************************
* RpcBindingFromStringBindingW (RPCRT4.@)
*/
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcBindingFromStringBindingW( LPWSTR StringBinding, RPC_BINDING_HANDLE* Binding )
{
FIXME( "(%s,%p): stub\n", debugstr_w( StringBinding ), Binding );
return RPC_S_INVALID_STRING_BINDING; /* As good as any failure code */
}

View File

@ -91,6 +91,7 @@ INSTALLED_INCLUDES = \
rpcdce.h \
rpcdcep.h \
rpcndr.h \
rpcnterr.h \
servprov.h \
setupapi.h \
shellapi.h \

View File

@ -14,6 +14,7 @@
#define __RPC_USER WINAPI
#define __RPC_STUB WINAPI
#define RPC_ENTRY WINAPI
#define RPCRTAPI
typedef long RPC_STATUS;
typedef void* I_RPC_HANDLE;
@ -38,7 +39,7 @@ RPC_STATUS RPC_ENTRY UuidCreate(UUID *Uuid);
#include "rpcdce.h"
/* #include "rpcnsi.h" */
/* #include "rpcnterr.h" */
#include "rpcnterr.h"
/* #include "excpt.h" */
#include "winerror.h"

View File

@ -3,6 +3,10 @@
#include "windef.h"
#ifndef GUID_DEFINED
#include "guiddef.h"
#endif
typedef void* RPC_AUTH_IDENTITY_HANDLE;
typedef void* RPC_AUTHZ_HANDLE;
typedef void* RPC_IF_HANDLE;
@ -11,6 +15,98 @@ typedef RPC_BINDING_HANDLE handle_t;
#define rpc_binding_handle_t RPC_BINDING_HANDLE
#define RPC_MGR_EPV void
#define RPC_C_BINDING_INFINITE_TIMEOUT 10
#define RPC_C_BINDING_MIN_TIMEOUT 0
#define RPC_C_BINDING_DEFAULT_TIMEOUT 5
#define RPC_C_BINDING_MAX_TIMEOUT 9
#define RPC_C_CANCEL_INFINITE_TIMEOUT -1
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
/* RPC_POLICY EndpointFlags */
#define RPC_C_BIND_TO_ALL_NICS 0x1
#define RPC_C_USE_INTERNET_PORT 0x1
#define RPC_C_USE_INTRANET_PORT 0x2
#define RPC_C_DONT_FAIL 0x4
/* RPC_POLICY EndpointFlags specific to the Falcon/RPC transport */
#define RPC_C_MQ_TEMPORARY 0x0000
#define RPC_C_MQ_PERMANENT 0x0001
#define RPC_C_MQ_CLEAR_ON_OPEN 0x0002
#define RPC_C_MQ_USE_EXISTING_SECURITY 0x0004
#define RPC_C_MQ_AUTHN_LEVEL_NONE 0x0000
#define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x0008
#define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x0010
typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN( RPC_IF_HANDLE InterfaceUuid, LPVOID Context );
typedef void (__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN)( LPVOID Arg, LPWSTR ServerPrincName,
ULONG KeyVer, LPVOID* Key, RPC_STATUS* status );
typedef struct _RPC_POLICY
{
UINT Length;
ULONG EndpointFlags;
ULONG NICFlags;
} RPC_POLICY, *PRPC_POLICY;
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
UINT Flags, UINT MaxCalls, RPC_IF_CALLBACK_FN* IfCallbackFn );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterIf2( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
UINT Flags, UINT MaxCalls, UINT MaxRpcSize, RPC_IF_CALLBACK_FN* IfCallbackFn );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpExA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor,
PRPC_POLICY Policy );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerUseProtseqEpExW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor,
PRPC_POLICY Policy );
#define RpcServerUseProtseqEp WINELIB_NAME_AW(RpcServerUseProtseqEp)
#define RpcServerUseProtseqEpEx WINELIB_NAME_AW(RpcServerUseProtseqEpEx)
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterAuthInfoA( LPSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
LPVOID Arg );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerRegisterAuthInfoW( LPWSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
LPVOID Arg );
#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
LPSTR Options, LPSTR* StringBinding );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcStringBindingComposeW( LPWSTR ObjUuid, LPWSTR Protseq, LPWSTR NetworkAddr, LPWSTR Endpoint,
LPWSTR Options, LPWSTR* StringBinding );
#define RpcStringBindingCompose WINELIB_NAME_AW(RpcStringBindingCompose)
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcBindingFromStringBindingA( LPSTR StringBinding, RPC_BINDING_HANDLE* Binding );
RPCRTAPI RPC_STATUS RPC_ENTRY
RpcBindingFromStringBindingW( LPWSTR StringBinding, RPC_BINDING_HANDLE* Binding );
#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
#include "rpcdcep.h"
#endif /*__WINE_RPCDCE_H */

26
include/rpcnterr.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef __RPCNTERR_H__
#define __RPCNTERR_H__
#define RPC_S_OK ERROR_SUCCESS
#define RPC_S_INVALID_ARG ERROR_INVALID_PARAMETER
#define RPC_S_OUT_OF_MEMORY ERROR_OUTOFMEMORY
#define RPC_S_OUT_OF_THREADS ERROR_MAX_THRDS_REACHED
#define RPC_S_INVALID_LEVEL ERROR_INVALID_PARAMETER
#define RPC_S_BUFFER_TOO_SMALL ERROR_INSUFFICIENT_BUFFER
#define RPC_S_INVALID_SECURITY_DESC ERROR_INVALID_SECURITY_DESCR
#define RPC_S_ACCESS_DENIED ERROR_ACCESS_DENIED
#define RPC_S_SERVER_OUT_OF_MEMORY ERROR_NOT_ENOUGH_SERVER_MEMORY
#define RPC_S_ASYNC_CALL_PENDING ERROR_IO_PENDING
#define RPC_S_UNKNOWN_PRINCIPAL ERROR_NONE_MAPPED
#define RPC_S_TIMEOUT ERROR_TIMEOUT
#define RPC_X_NO_MEMORY RPC_S_OUT_OF_MEMORY
#define RPC_X_INVALID_BOUND RPC_S_INVALID_BOUND
#define RPC_X_INVALID_TAG RPC_S_INVALID_TAG
#define RPC_X_ENUM_VALUE_TOO_LARGE RPC_X_ENUM_VALUE_OUT_OF_RANGE
#define RPC_X_SS_CONTEXT_MISMATCH ERROR_INVALID_HANDLE
#define RPC_X_INVALID_BUFFER ERROR_INVALID_USER_BUFFER
#define RPC_X_PIPE_APP_MEMORY ERROR_OUTOFMEMORY
#define RPC_X_INVALID_PIPE_OPERATION RPC_X_WRONG_PIPE_ORDER
#endif /* __RPCNTERR_H__ */