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

194 lines
5.9 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: datatran.idl
//
//--------------------------------------------------------------------------
[
uuid(67c43840-74be-11cf-b64d-00aa0044fb89),
version(1.0)
]
interface DataTranPerf
{
//
// Context Handles
//
typedef [context_handle] void * DT_FILE_HANDLE;
typedef [context_handle] void * DT_MEM_HANDLE;
//
// Test cases.
//
[v1_enum]
typedef enum {
SEND_BUFFER_RPC,
RECV_BUFFER_RPC,
SEND_BUFFER_PIPES,
RECV_BUFFER_PIPES,
SEND_BUFFER_FTP1,
RECV_BUFFER_FTP1,
SEND_BUFFER_HTTP,
RECV_BUFFER_HTTP,
SEND_FILE_RPC,
RECV_FILE_RPC,
SEND_FILE_PIPES,
RECV_FILE_PIPES,
SEND_FILE_FTP,
RECV_FILE_FTP,
SEND_FILE_FTP1,
RECV_FILE_FTP1,
SEND_FILE_HTTP,
RECV_FILE_HTTP
} TEST_TYPE;
const unsigned long TEST_MAX = 18;
//
// 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,
[out] long *Length,
[out] long *ChunkSize
);
// blocking
error_status_t EndTest( [in] handle_t Binding,
[in] unsigned long mseconds
);
//
// Remote memory stuff
//
DT_MEM_HANDLE RemoteAllocate( [in] handle_t Binding,
[in] unsigned long Length);
void RemoteFree ([in] DT_MEM_HANDLE *MemHandle);
//
// Opens temporary file on server w/ optional length
// Set Length to zero to just open the file.
//
DT_FILE_HANDLE RemoteOpen([in] handle_t Binding,
[in] unsigned long int ulLength);
//
// Opens a temporary file in the FTP directory
//
DT_FILE_HANDLE RemoteCreateFtpFile ([in] handle_t Binding,
[in] boolean f_StoC,
[in] unsigned long int ulLength,
[in] unsigned long int ulBufferSize,
[string,
out,
size_is(ulBufferSize)] byte szRemotePath[]
);
//
// Opens a temporary file in the WWW directory
//
DT_FILE_HANDLE RemoteCreateHttpFile ([in] handle_t Binding,
[in] boolean f_StoC,
[in] unsigned long int ulLength,
[in] unsigned long int ulBufferSize,
[string,
out,
size_is(ulBufferSize)] byte szRemotePath[]
);
//
// Closes a file on the server and optionally delete it
//
void RemoteClose([in,out] DT_FILE_HANDLE *ppContext,
[in] boolean fDelete);
//
// Resets the FilePointer of specified file to zero
//
void RemoteResetFile([in] DT_FILE_HANDLE pContext);
//
// Gets the server's machine name
//
void GetServerName ([in] handle_t Binding,
[in] unsigned long int BufferSize,
[out, size_is(BufferSize)] byte Buffer[]);
//
// Test APIs
//
//===================================================================
// RPC only
//===================================================================
void C_to_S_Buffer ([in] handle_t Binding,
[in] unsigned long int BufferSize,
[in, size_is(BufferSize)] byte Buffer[]);
void S_to_C_Buffer ([in] handle_t Binding,
[in] unsigned long int BufferSize,
[out, size_is(BufferSize)] byte Buffer[]);
long S_to_C_BufferWithFile ([in] handle_t Binding,
[in] DT_FILE_HANDLE phContext,
[in] unsigned long int BufferSize,
[out, size_is(BufferSize)] byte Buffer[]);
void C_to_S_BufferWithFile ([in] handle_t Binding,
[in] DT_FILE_HANDLE phContext,
[in] unsigned long int BufferSize,
[in, size_is(BufferSize)] byte Buffer[]);
//===================================================================
// RPC pipes
//===================================================================
typedef pipe unsigned char UCHAR_PIPE;
void S_to_C_Pipe ([in] handle_t Binding,
[out] UCHAR_PIPE data,
[in] unsigned long Length,
[in] DT_MEM_HANDLE MemHandle);
void C_to_S_Pipe ([in] handle_t Binding,
[in] UCHAR_PIPE data,
[in] DT_MEM_HANDLE MemHandle);
void S_to_C_PipeWithFile ([in] handle_t Binding,
[out] UCHAR_PIPE data,
[in] DT_FILE_HANDLE FileHandle,
[in] DT_MEM_HANDLE MemHandle);
void C_to_S_PipeWithFile ([in] handle_t Binding,
[in] UCHAR_PIPE data,
[in] DT_FILE_HANDLE FileHandle,
[in] DT_MEM_HANDLE MemHandle);
//
// Used for fixed binding test.
//
[string] char * GetFixedEp(handle_t Binding);
}