home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
msdn_vcb
/
samples
/
vc98
/
sdk
/
sdktools
/
winnt
/
remote
/
remote.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-10-12
|
4KB
|
196 lines
/******************************************************************************\
* This is a part of the Microsoft Source Code Samples.
* Copyright 1993 - 1997 Microsoft Corporation.
* All rights reserved.
* This source code is only intended as a supplement to
* Microsoft Development Tools and/or WinHelp documentation.
* See these sources for detailed information regarding the
* Microsoft samples programs.
\******************************************************************************/
/*++
Copyright 1993 - 1997 Microsoft Corporation
Module Name:
Remote.h
Abstract:
This module contains the main() entry point for Remote.
Calls the Server or the Client depending on the first parameter.
Author:
Rajivendra Nath 2-Jan-1993
Environment:
Console App. User mode.
Revision History:
--*/
#if !defined(FASTCALL)
#if defined(_M_IX86)
#define FASTCALL _fastcall
#else
#define FASTCALL
#endif
#endif
#define VERSION 4
#define REMOTE_SERVER 1
#define RUNTYPE_CLIENT 2
#define SERVER_READ_PIPE "\\\\%s\\PIPE\\%sIN" //Client Writes and Server Reads
#define SERVER_WRITE_PIPE "\\\\%s\\PIPE\\%sOUT" //Server Writes and Client Reads
#define QUERY_DEBUGGERS_PIPE "\\\\%s\\PIPE\\QueryDebuggerPipe"
// PRIVACY_DEFAULT: this session will be listed only if it looks like a debugging one
// PRIVACY_NON_VISIBLE: whatever the name of command, it will not show up with remote /q
// PRIVACY_VISIBLE: this session will be visible for querying
#define PRIVACY_DEFAULT 1
#define PRIVACY_VISIBLE 2
#define PRIVACY_NOT_VISIBLE 3
#define COMMANDCHAR '@' //Commands intended for remote begins with this
#define CTRLC 3
#define CLIENT_ATTR FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_BLUE
#define SERVER_ATTR FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE|BACKGROUND_RED
//
//Some General purpose Macros
//
#define MINIMUM(x,y) ((x)>(y)?(y):(x))
#define MAXIMUM(x,y) ((x)>(y)?(x):(y))
#define HOSTNAMELEN MAX_COMPUTERNAME_LENGTH+1
#define CHARS_PER_LINE 45
#define MAGICNUMBER 0x31109000
#define BEGINMARK '\xfe'
#define ENDMARK '\xff'
#define LINESTOSEND 200
#define MAX_DACL_NAMES 64
typedef struct
{
DWORD Size;
DWORD Version;
char ClientName[HOSTNAMELEN];
DWORD LinesToSend;
DWORD Flag;
} SESSION_STARTUPINFO;
typedef struct
{
DWORD MagicNumber; //New Remote
DWORD Size; //Size of structure
DWORD FileSize; //Num bytes sent
} SESSION_STARTREPLY;
typedef struct
{
char* out; // message
int size; // message length
int allocated; // length of allocated memory
} QUERY_MESSAGE;
VOID
QueryRemotePipes(
char* serverName
);
int
OverlappedServer(
char* ChildCmd,
char* PipeName
);
VOID
Client(
char* ServerName,
char* PipeName
);
VOID
ErrorExit(
char* str
);
VOID
DisplayClientHlp(
);
VOID
DisplayServerHlp(
);
VOID
Errormsg(
char* str
);
BOOL
IsKdString(
char* string
);
BOOL
FASTCALL
WriteFileSynch(
HANDLE hFile,
LPVOID lpBuffer,
DWORD cbWrite,
LPDWORD lpNumberOfBytesWritten,
DWORD dwFileOffset,
LPOVERLAPPED lpO
);
BOOL
FASTCALL
ReadFileSynch(
HANDLE hFile,
LPVOID lpBuffer,
DWORD cbRead,
LPDWORD lpNumberOfBytesRead,
DWORD dwFileOffset,
LPOVERLAPPED lpO
);
VOID
CloseClientPipes(
VOID
);
extern char HostName[HOSTNAMELEN];
extern char* ChildCmd;
extern char* PipeName;
extern char* ServerName;
extern HANDLE MyOutHandle;
extern DWORD LinesToSend;
extern BOOL IsAdvertise;
extern DWORD ClientToServerFlag;
extern char * DaclNames[];
extern DWORD DaclNameCount;
extern char * DaclDenyNames[];
extern DWORD DaclDenyNameCount;
extern BOOL fAsyncPipe;
extern HANDLE hAttachedProcess;
extern HANDLE hAttachedWriteChildStdIn;
extern HANDLE hAttachedReadChildStdOut;