194 lines
5.9 KiB
Plaintext
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);
|
||
|
|
||
|
}
|
||
|
|