windows-nt/Source/XPSP1/NT/com/rpc/perf/rpcrt/rpcrt.idl
2020-09-26 16:20:57 +08:00

110 lines
2.6 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1994 - 1999
//
// File: rpcrt.idl
//
//--------------------------------------------------------------------------
// fool the preprocessor about the async attribute until the public headers are fixed
cpp_quote("#ifdef WIN98")
cpp_quote("#ifdef TARGET_IS_NT50_OR_LATER")
cpp_quote("#undef TARGET_IS_NT50_OR_LATER")
cpp_quote("#define TARGET_IS_NT50_OR_LATER 1")
cpp_quote("#endif")
cpp_quote("#endif")
[
uuid(19bb5060-2e68-101b-b4d9-00000b65c782),
version(2.0)
]
interface RpcRuntimePerf
{
//
// Test cases.
//
[v1_enum]
typedef enum {
NULL_CALL,
NI_CALL,
WRITE_1K,
READ_1K,
WRITE_4K,
READ_4K,
WRITE32K,
READ32K,
CONTEXT_CALL,
FIXED_BIND,
REBIND,
DYNAMIC_BIND,
ASYNC_NULL_CALL,
ASYNC_STA_NULL_CALL
} TEST_TYPE;
const unsigned long TEST_MAX = 14;
//
// Client test case control functions follow
//
const unsigned long PERF_TOO_MANY_CLIENTS = 20001;
const unsigned long PERF_TESTS_DONE = 20002;
// non-blocking
error_status_t
BeginTest([in] handle_t Binding,
[out] long *ClientId
);
// blocking
error_status_t
NextTest( [in] handle_t Binding,
[out] TEST_TYPE *Test,
[out] long *Iterations
);
// blocking
error_status_t
EndTest( [in] handle_t Binding,
[in] unsigned long mseconds
);
//
// Test APis
//
typedef [context_handle] void *PERF_CONTEXT;
[idempotent] void NullCall([in] handle_t Binding);
void NICall ([in] handle_t Binding);
[idempotent] void Write1K ([in] handle_t Binding, [in] byte buffer[1024]);
[idempotent] void Read1K ([in] handle_t Binding, [out] byte buffer[1024]);
[idempotent] void Write4K ([in] handle_t Binding, [in] byte buffer[4096-4*24]);
[idempotent] void Read4K ([in] handle_t Binding, [out] byte buffer[4069-4*24]);
[idempotent] void Write32K([in] handle_t Binding, [in] byte buffer[32*1024]);
[idempotent] void Read32K ([in] handle_t Binding, [out] byte buffer[32*1024]);
void ContextNullCall([in] PERF_CONTEXT pContext);
void AsyncNullCall([in] handle_t Binding);
void AsyncSTANullCall([in] handle_t Binding);
//
// Used for setting up the context handle test(s)
//
PERF_CONTEXT OpenContext(handle_t Binding);
void CloseContext([in,out] PERF_CONTEXT *ppContext);
//
// Used for fixed binding test.
//
[string]
char * GetFixedEp(handle_t Binding);
}