mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.6 KiB
109 lines
2.6 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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);
|
|
|
|
}
|
|
|