Source code of Windows XP (NT5)
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

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1994 - 1999
  6. //
  7. // File: rpcrt.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. // fool the preprocessor about the async attribute until the public headers are fixed
  11. cpp_quote("#ifdef WIN98")
  12. cpp_quote("#ifdef TARGET_IS_NT50_OR_LATER")
  13. cpp_quote("#undef TARGET_IS_NT50_OR_LATER")
  14. cpp_quote("#define TARGET_IS_NT50_OR_LATER 1")
  15. cpp_quote("#endif")
  16. cpp_quote("#endif")
  17. [
  18. uuid(19bb5060-2e68-101b-b4d9-00000b65c782),
  19. version(2.0)
  20. ]
  21. interface RpcRuntimePerf
  22. {
  23. //
  24. // Test cases.
  25. //
  26. [v1_enum]
  27. typedef enum {
  28. NULL_CALL,
  29. NI_CALL,
  30. WRITE_1K,
  31. READ_1K,
  32. WRITE_4K,
  33. READ_4K,
  34. WRITE32K,
  35. READ32K,
  36. CONTEXT_CALL,
  37. FIXED_BIND,
  38. REBIND,
  39. DYNAMIC_BIND,
  40. ASYNC_NULL_CALL,
  41. ASYNC_STA_NULL_CALL
  42. } TEST_TYPE;
  43. const unsigned long TEST_MAX = 14;
  44. //
  45. // Client test case control functions follow
  46. //
  47. const unsigned long PERF_TOO_MANY_CLIENTS = 20001;
  48. const unsigned long PERF_TESTS_DONE = 20002;
  49. // non-blocking
  50. error_status_t
  51. BeginTest([in] handle_t Binding,
  52. [out] long *ClientId
  53. );
  54. // blocking
  55. error_status_t
  56. NextTest( [in] handle_t Binding,
  57. [out] TEST_TYPE *Test,
  58. [out] long *Iterations
  59. );
  60. // blocking
  61. error_status_t
  62. EndTest( [in] handle_t Binding,
  63. [in] unsigned long mseconds
  64. );
  65. //
  66. // Test APis
  67. //
  68. typedef [context_handle] void *PERF_CONTEXT;
  69. [idempotent] void NullCall([in] handle_t Binding);
  70. void NICall ([in] handle_t Binding);
  71. [idempotent] void Write1K ([in] handle_t Binding, [in] byte buffer[1024]);
  72. [idempotent] void Read1K ([in] handle_t Binding, [out] byte buffer[1024]);
  73. [idempotent] void Write4K ([in] handle_t Binding, [in] byte buffer[4096-4*24]);
  74. [idempotent] void Read4K ([in] handle_t Binding, [out] byte buffer[4069-4*24]);
  75. [idempotent] void Write32K([in] handle_t Binding, [in] byte buffer[32*1024]);
  76. [idempotent] void Read32K ([in] handle_t Binding, [out] byte buffer[32*1024]);
  77. void ContextNullCall([in] PERF_CONTEXT pContext);
  78. void AsyncNullCall([in] handle_t Binding);
  79. void AsyncSTANullCall([in] handle_t Binding);
  80. //
  81. // Used for setting up the context handle test(s)
  82. //
  83. PERF_CONTEXT OpenContext(handle_t Binding);
  84. void CloseContext([in,out] PERF_CONTEXT *ppContext);
  85. //
  86. // Used for fixed binding test.
  87. //
  88. [string]
  89. char * GetFixedEp(handle_t Binding);
  90. }