mirror of
https://github.com/samba-team/samba.git
synced 2025-03-09 08:58:35 +03:00
r3487: RemoteActivation works! The only odd bit is that I get either a
NT_STATUS_BUFFER_TOO_SMALL or a NT_STATUS_NET_WRITE_FAULT if I try other user accounts. Must've got something to do with the auth padding... (This used to be commit f6f3d312bf43354564a9b0816edc3a13b520192d)
This commit is contained in:
parent
5f6ec5270d
commit
c1f9a94eba
@ -234,7 +234,7 @@ interface ObjectRpcBaseTypes
|
||||
GUID clsid; /* Clsid of unmarshaling code */
|
||||
uint32 cbExtension; /* size of extension data */
|
||||
uint32 size; /* size of data that follows */
|
||||
[size_is(size), ref] uint8 *pData; /* extension + class specific data */
|
||||
[size_is(size)] uint8 pData[]; /* extension + class specific data */
|
||||
} u_custom;
|
||||
|
||||
typedef struct
|
||||
@ -262,7 +262,7 @@ interface ObjectRpcBaseTypes
|
||||
typedef [public] struct
|
||||
{
|
||||
uint32 size;
|
||||
[size_is(size)] uint8 data[];
|
||||
[subcontext(4)] OBJREF obj;
|
||||
} MInterfacePointer;
|
||||
}
|
||||
|
||||
@ -278,8 +278,8 @@ interface IUnknown
|
||||
/* Function 0x00 */
|
||||
/* Returns the interface with the specified IID
|
||||
if implemented by this object */
|
||||
[local] WERROR QueryInterface([in] IID *riid
|
||||
/*FIXME, [out] void **data*/);
|
||||
[local] WERROR QueryInterface([in] IID *riid,
|
||||
[out,iid_is(riid)] MInterfacePointer *data);
|
||||
|
||||
/*****************/
|
||||
/* Function 0x01 */
|
||||
@ -297,9 +297,9 @@ interface IUnknown
|
||||
pointer_default(unique)
|
||||
] interface IClassFactory : IUnknown
|
||||
{
|
||||
[local] WERROR CreateInstance(/*FIXME[in] IUnknown *pUnknown,
|
||||
[local] WERROR CreateInstance(/*FIXME[in] IUnknown *pUnknown*/,
|
||||
[in] IID *riid,
|
||||
[out, iid_is(riid)] void **ppv*/);
|
||||
[out, iid_is(riid)] MInterfacePointer *ppv);
|
||||
|
||||
[call_as(CreateInstance)] WERROR RemoteCreateInstance();
|
||||
|
||||
@ -338,7 +338,7 @@ interface IRemUnknown : IUnknown
|
||||
[in] uint32 cRefs, /* count of AddRefs requested */
|
||||
[in] uint16 cIids, /* count of IIDs that follow */
|
||||
[in, size_is(cIids)] IID* iids, /*, // IIDs to QI for */
|
||||
[out] MInterfacePointer *ip
|
||||
[out, size_is(cIids)] MInterfacePointer *ip
|
||||
);
|
||||
|
||||
typedef struct
|
||||
@ -368,8 +368,8 @@ interface IRemUnknown : IUnknown
|
||||
void RemoteGetClassObject([in] GUID clsid,
|
||||
[in] uint32 context,
|
||||
[in] LCID locale,
|
||||
[in] GUID iid/*FIXME,
|
||||
[out, iid_is(iid)] void *data */);
|
||||
[in] GUID iid,
|
||||
[out, iid_is(iid)] MInterfacePointer data);
|
||||
}
|
||||
|
||||
/* Looks like this is the equivalent of .NET's
|
||||
|
@ -32,7 +32,7 @@ static int test_RemoteActivation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
|
||||
struct RemoteActivation r;
|
||||
NTSTATUS status;
|
||||
struct GUID iids[2];
|
||||
uint16 protseq[2] = { EPM_PROTOCOL_TCP, EPM_PROTOCOL_NCALRPC };
|
||||
uint16 protseq[3] = { EPM_PROTOCOL_TCP, EPM_PROTOCOL_NCALRPC, EPM_PROTOCOL_UUID };
|
||||
|
||||
ZERO_STRUCT(r.in);
|
||||
r.in.this.version.MajorVersion = 5;
|
||||
@ -40,7 +40,7 @@ static int test_RemoteActivation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
|
||||
uuid_generate_random(&r.in.this.cid);
|
||||
GUID_from_string(CLSID_SIMPLE, &r.in.Clsid);
|
||||
r.in.ClientImpLevel = RPC_C_IMP_LEVEL_IDENTIFY;
|
||||
r.in.num_protseqs = 2;
|
||||
r.in.num_protseqs = 3;
|
||||
r.in.protseq = protseq;
|
||||
r.in.Interfaces = 1;
|
||||
GUID_from_string(DCERPC_IUNKNOWN_UUID, &iids[0]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user