|
|
//+------------------------------------------------------------------------- // // 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);
}
|