home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
warphead.zip
/
H
/
SERVICE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1997-09-05
|
18KB
|
440 lines
/**************************************************************************/
/* */
/* IBM OS/2(tm) File and Print Client Services */
/* (c) Copyright International Business Machines Corporation, 1988, 1996 */
/* */
/**************************************************************************/
/********************************************************************/
/********************************************************************
* *
* About this file ... SERVICE.H *
* *
* This file contains information about the NetService APIs. *
* *
* Function prototypes. *
* *
* Data structure templates. *
* *
* Definition of special values. *
* *
* *
* NOTE: You must include NETCONS.H before this file, since this *
* file depends on values defined in NETCONS.H. *
* *
********************************************************************/
#ifndef NETSERVICE_INCLUDED
#define NETSERVICE_INCLUDED
#ifdef ANY_32_BIT
#pragma pack(1)
#endif
/****************************************************************
* *
* Function prototypes *
* *
****************************************************************/
extern API_FUNCTION
NetServiceControl ( const unsigned char LSFAR * pszServer,
const unsigned char LSFAR * pszService,
unsigned char fbOpCode,
unsigned char fbArg,
unsigned char LSFAR * pbBuffer,
unsigned short cbBuffer );
extern API_FUNCTION
NetServiceEnum ( const unsigned char LSFAR * pszServer,
short sLevel,
unsigned char LSFAR * pbBuffer,
unsigned short cbBuffer,
unsigned short LSFAR * pcEntriesRead,
unsigned short LSFAR * pcTotalAvail );
extern API_FUNCTION
NetServiceGetInfo ( const unsigned char LSFAR * pszServer,
const unsigned char LSFAR * pszService,
short sLevel,
unsigned char LSFAR * pbBuffer,
unsigned short cbBuffer,
unsigned short LSFAR * pcbTotalAvail );
extern API_FUNCTION
NetServiceInstall ( const unsigned char LSFAR * pszServer,
const unsigned char LSFAR * pszService,
const unsigned char LSFAR * pszCmdArgs,
unsigned char LSFAR * pbBuffer,
unsigned short cbBuffer );
extern API_FUNCTION
NetServiceStatus ( const unsigned char LSFAR * pbBuffer,
unsigned short cbBuffer );
/****************************************************************
* *
* Data structure templates *
* *
****************************************************************/
struct service_info_0 {
unsigned char svci0_name[SNLEN+1]; /* service name */
}; /* service_info_0 */
struct service_info_1 {
unsigned char svci1_name[SNLEN+1]; /* service name */
unsigned short svci1_status; /* See status values below */
unsigned long svci1_code; /* install code of service */
unsigned short svci1_pid; /* pid of service program */
}; /* service_info_1 */
struct service_info_2 {
unsigned char svci2_name[SNLEN+1]; /* service name */
unsigned short svci2_status; /* See status values below */
unsigned long svci2_code; /* install code of service */
unsigned short svci2_pid; /* pid of service program */
unsigned char svci2_text[STXTLEN+1]; /* text area for use by services */
}; /* service_info_2 */
struct service_status {
unsigned short svcs_status; /* See status values below */
unsigned long svcs_code; /* install code of service */
unsigned short svcs_pid; /* pid of service program */
unsigned char svcs_text[STXTLEN+1]; /* text area for use by services */
}; /* service_status */
#ifdef PURE_32
/****************************************************************
* *
* Function prototypes *
* for "pure" 32-bit code *
* *
****************************************************************/
extern API32_FUNCTION
Net32ServiceControl ( const unsigned char * pszServer,
const unsigned char * pszService,
unsigned short usOpcode, /* was char */
unsigned short usArg, /* was char */
unsigned char * pbBuffer,
unsigned long ulBuffer ); /* was USHORT */
extern API32_FUNCTION
Net32ServiceEnum ( const unsigned char * pszServer,
unsigned long ulLevel, /* was short */
unsigned char * pbBuffer,
unsigned long ulBuffer, /* was USHORT */
unsigned long * pulEntriesRead, /* was USHORT */
unsigned long * pulTotalAvail );/* was PUSHORT */
extern API32_FUNCTION
Net32ServiceGetInfo ( const unsigned char * pszServer,
const unsigned char * pszService,
unsigned long ulLevel, /* was short */
unsigned char * pbBuffer,
unsigned long ulBuffer, /* was USHORT */
unsigned long * pulTotalAvail ); /* was PUSHORT */
extern API32_FUNCTION
Net32ServiceInstall ( const unsigned char * pszServer,
const unsigned char * pszService,
const unsigned char * pszCmdArgs,
unsigned char * pbBuffer,
unsigned long ulBuffer ); /* was USHORT */
extern API32_FUNCTION
Net32ServiceStatus ( const unsigned char * pbBuffer,
unsigned long ulBuffer ); /* was USHORT */
/****************************************************************
* *
* Data structure templates, PURE_32 only *
* *
****************************************************************/
/* Just for safety, define HEV. */
#ifndef __HEV__
typedef ULONG HEV;
#endif
struct service_ctrl_info_0 {
unsigned short svc_ctrl0_opcode; /* service control operation */
unsigned short svc_ctrl0_arg; /* Additional control data */
HEV svc_ctrl0_sem_handle; /* Sem handle for control loop */
}; /* service_ctrl_info_0 */
struct service_status_1 {
unsigned short svcs_status; /* Same as in service_status */
unsigned long svcs_code; /* Same as in service_status */
unsigned short svcs_pid; /* Same as in service_status */
unsigned char svcs_text[STXTLEN+1]; /* Same as in service_status */
unsigned long svcs_flags; /* Flags for service control, etc. */
}; /* service_status_1 */
#endif /* PURE_32 */
/****************************************************************
* *
* Special values and constants *
* *
****************************************************************/
/*
* SERVICE_RCV_SIG_FLAG is the value passed to DosSetSigHandler when
* installing the handler within a service, to receive control
* signals.
*/
#define SERVICE_RCV_SIG_FLAG 5
/*
* Flags for the new 32-bit services
*/
#define SERVICE_CTRL_USES_SEMAPHORE 1
/*
* Bitmask and bit values for svci1_status, svci2_status, and
* svcs_status fields. For each "subfield", there is a mask
* defined, and a number of constants representing the value
* obtained by doing (status & mask).
*/
/* Bits 0,1 -- general status */
#define SERVICE_INSTALL_STATE 0x03
#define SERVICE_UNINSTALLED 0x00
#define SERVICE_INSTALL_PENDING 0x01
#define SERVICE_UNINSTALL_PENDING 0x02
#define SERVICE_INSTALLED 0x03
/* Bits 2,3 -- paused/active status */
#define SERVICE_PAUSE_STATE 0x0C
#define SERVICE_ACTIVE 0x00
#define SERVICE_CONTINUE_PENDING 0x04
#define SERVICE_PAUSE_PENDING 0x08
#define SERVICE_PAUSED 0x0C
/* Bit 4 -- uninstallable indication */
#define SERVICE_NOT_UNINSTALLABLE 0x00
#define SERVICE_UNINSTALLABLE 0x10
/* Bit 5 -- pausable indication */
#define SERVICE_NOT_PAUSABLE 0x00
#define SERVICE_PAUSABLE 0x20
/* Requester service only:
* Bits 8,9,10 -- redirection paused/active */
#define SERVICE_REDIR_PAUSED 0x700
#define SERVICE_REDIR_DISK_PAUSED 0x100
#define SERVICE_REDIR_PRINT_PAUSED 0x200
#define SERVICE_REDIR_COMM_PAUSED 0x400
/*
* Standard LAN Manager service names.
*/
#define SERVICE_WORKSTATION "REQUESTER"
#define SERVICE_SERVER "SERVER"
#define SERVICE_MESSENGER "MESSENGER"
#define SERVICE_NETRUN "NETRUN"
#define SERVICE_ALERTER "ALERTER"
#define SERVICE_NETLOGON "NETLOGON"
#define SERVICE_NETPOPUP "NETPOPUP"
#define SERVICE_REPL "REPLICATOR"
#define SERVICE_DCDBREPL "DCDBREPL"
/*
* Additional standard LAN Manager for MS-DOS services
*/
#define SERVICE_DOS_ENCRYPTION "ENCRYPT"
/*
* NetServiceControl opcodes.
*/
#define SERVICE_CTRL_INTERROGATE 0
#define SERVICE_CTRL_PAUSE 1
#define SERVICE_CTRL_CONTINUE 2
#define SERVICE_CTRL_UNINSTALL 3
/*
* Requester service only: Bits used in the "arg" parameter
* to NetServiceControl in conjunction with the opcode
* SERVICE_CTRL_PAUSE or SERVICE_CTRL_CONTINUE, to pause or
* continue redirection.
*/
#define SERVICE_CTRL_REDIR_DISK 0x1
#define SERVICE_CTRL_REDIR_PRINT 0x2
#define SERVICE_CTRL_REDIR_COMM 0x4
/*
* Values for svci1_code, svci2_code, and svcs_code when
* status of the service is SERVICE_INSTALL_PENDING or
* SERVICE_UNINSTALL_PENDING.
* A service can optionally provide a hint to the installer
* that the install is proceeding and how long to wait
* (in 0.1 second increments) before querying status again.
*/
#define SERVICE_IP_NO_HINT 0x0
#define SERVICE_CCP_NO_HINT 0x0
#define SERVICE_IP_QUERY_HINT 0x10000
#define SERVICE_CCP_QUERY_HINT 0x10000
/* Mask for install proceeding checkpoint number */
#define SERVICE_IP_CHKPT_NUM 0x0FF
#define SERVICE_CCP_CHKPT_NUM 0x0FF
/* Mask for wait time hint before querying again */
#define SERVICE_IP_WAIT_TIME 0x0FF00
#define SERVICE_CCP_WAIT_TIME 0x0FF00
/* Shift count for building wait time _code values */
#define SERVICE_IP_WAITTIME_SHIFT 8
#define SERVICE_IP_CODE(tt,nn) \
((long)SERVICE_IP_QUERY_HINT|(long)(nn|(tt<<SERVICE_IP_WAITTIME_SHIFT)))
#define SERVICE_CCP_CODE(tt,nn) \
((long)SERVICE_CCP_QUERY_HINT|(long)(nn|(tt<<SERVICE_IP_WAITTIME_SHIFT)))
#define SERVICE_UIC_CODE(cc,mm) \
((long)(((long)cc<<16)|(long)(unsigned)mm))
/*** SERVICE_BASE is the base of service error codes,
* chosen to avoid conflict with OS, redirector,
* netapi, and errlog codes.
*/
#define SERVICE_BASE 3050
/* Uninstall codes, to be used in high byte of 'code' on final NetStatus,
* which sets the status to UNINSTALLED
*/
#define SERVICE_UIC_NORMAL 0
#define SERVICE_UIC_BADPARMVAL (SERVICE_BASE + 1) \
/* IBMLAN.INI or the command line has an illegal value for "%1". */
/* A IBMLAN.INI entry or what you just typed includes an illegal value for "%1". */
#define SERVICE_UIC_MISSPARM (SERVICE_BASE + 2) \
/* The required parameter %1 was not provided on the command line or in IBMLAN.INI. */
#define SERVICE_UIC_UNKPARM (SERVICE_BASE + 3) \
/* LAN Manager doesn't recognize "%1" as a valid option. */
#define SERVICE_UIC_RESOURCE (SERVICE_BASE + 4) /* A request for %1 resources could not be satisfied. */
#define SERVICE_UIC_CONFIG (SERVICE_BASE + 5) /* A problem exists with the system configuration: %1. */
#define SERVICE_UIC_SYSTEM (SERVICE_BASE + 6) /* A system error has occurred. */
#define SERVICE_UIC_INTERNAL (SERVICE_BASE + 7) /* An internal consistency error has occurred. */
#define SERVICE_UIC_AMBIGPARM (SERVICE_BASE + 8) \
/* IBMLAN.INI or the command line has an ambiguous option: %1. */
#define SERVICE_UIC_DUPPARM (SERVICE_BASE + 9) \
/* IBMLAN.INI or the command line has a duplicate parameter: %1. */
#define SERVICE_UIC_KILL (SERVICE_BASE + 10) \
/* The service did not respond to control and was stopped with the DosKillProc function.*/
#define SERVICE_UIC_EXEC (SERVICE_BASE + 11) \
/* An error occurred when attempting to run the service program. */
#define SERVICE_UIC_SUBSERV (SERVICE_BASE + 12) \
/* The sub-service %1 failed to start. */
#define SERVICE_UIC_CONFLPARM (SERVICE_BASE + 13) \
/* There is a conflict in the value or use of these options: %1 */
#define SERVICE_UIC_FILE (SERVICE_BASE + 14) \
/* There is a problem with the file %1. %2*/
/***
* The modifiers
*/
/* General: */
#define SERVICE_UIC_M_NULL 0
/* BADPARMVAL: A text string in service_info_2.text */
/* MISSPARM: ditto */
/* UNKPARM: ditto */
/* AMBIGPARM: ditto */
/* DUPPARM: ditto */
/* SUBSERV: ditto */
/* CONFIG: */
/* see also 3074 to 3091 */
#define SERVICE_UIC_ADDGR_FAIL (SERVICE_BASE + 15) /* @E
NCBAddGroupName failed%0 */
#define SERVICE_UIC_NO_STANDAL (SERVICE_BASE + 16) /* @E
Server can not be standalone%0 */
#define SERVICE_UIC_NUMMAILSLOT (SERVICE_BASE + 17) /* @E
Number of Mailslots must be greater than zero%0 */
/* RESOURCE: */
#define SERVICE_UIC_M_MEMORY (SERVICE_BASE + 20) /* @I
*memory%0 */
#define SERVICE_UIC_M_DISK (SERVICE_BASE + 21) /* @I
*disk space%0 */
#define SERVICE_UIC_M_THREADS (SERVICE_BASE + 22) /* @I
*thread%0 */
#define SERVICE_UIC_M_PROCESSES (SERVICE_BASE + 23) /* @I
*process%0 */
/* CONFIG: */
/* 3065 to 3070 is also config error range */
#define SERVICE_UIC_M_SECURITY (SERVICE_BASE + 24) /* @I
*Security failure%0 */
#define SERVICE_UIC_M_SEC_FILE_ERR (SERVICE_BASE + 28) /* @I
*The server cannot access the user accounts database (NET.ACC)%0 */
#define SERVICE_UIC_M_FILES (SERVICE_BASE + 29) /* @I
*There are incompatible files installed in the LANMAN tree%0 */
#define SERVICE_UIC_M_LOGS (SERVICE_BASE + 30) /* @I
*The LANMAN\LOGS directory is invalid%0 */
#define SERVICE_UIC_M_LANGROUP (SERVICE_BASE + 31) /* @I
*The domain specified could not be used%0 */
#define SERVICE_UIC_M_MSGNAME (SERVICE_BASE + 32) /* @I
*The computername is being used as a message alias on another computer%0 */
#define SERVICE_UIC_M_UAS (SERVICE_BASE + 34) /* @I
*The user accounts system isn't configured correctly%0 */
#define SERVICE_UIC_M_SERVER_SEC_ERR (SERVICE_BASE + 35) /* @I
*The server isn't running with user-level security%0 */
#define SERVICE_UIC_M_WKSTA (SERVICE_BASE + 37) /* @I
*The workstation is not configured appropriately%0 */
#define SERVICE_UIC_M_ERRLOG (SERVICE_BASE + 38) /* @I
*View your error log for details%0 */
#define SERVICE_UIC_M_ADDPAK (SERVICE_BASE + 40) /* @I
*ADDPAK file is corrupt. Delete LANMAN\NETPROG\ADDPAK.SER and reapply all ADDPAKs%0 */
#define SERVICE_UIC_M_LAZY (SERVICE_BASE + 41) \
/* The LM386 server cannot be started because CACHE.EXE is not running%0 */
/* SYSTEM: A DOS or NET error number */
/* INTERNAL: None */
/* KILL: None */
/* EXEC: None */
/***
* End modifiers
*/
#ifdef ANY_32_BIT
#pragma pack()
#endif
#endif /* NETSERVICE_INCLUDED */