home *** CD-ROM | disk | FTP | other *** search
-
- /******************************************************************************\
- * 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;
-