VBoxServiceInternal.h revision e961f5bfe1727c6816d3dad3805ebe21b6ba1c64
2N/A * VBoxService - Guest Additions Services. 2N/A * Copyright (C) 2007-2011 Oracle Corporation 2N/A * This file is part of VirtualBox Open Source Edition (OSE), as 2N/A * you can redistribute it and/or modify it under the terms of the GNU 2N/A * General Public License (GPL) as published by the Free Software 2N/A * Foundation, in version 2 as it comes in the "COPYING" file of the 2N/A * VirtualBox OSE distribution. VirtualBox OSE is distributed in the 2N/A * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 2N/A#
include <
process.h>
/* Needed for file version information. */ 2N/A * A service descriptor. 2N/A /** The short service name. */ 2N/A /** The longer service name. */ 2N/A /** The usage options stuff for the --help screen. */ 2N/A /** The option descriptions for the --help screen. */ 2N/A * Called before parsing arguments. 2N/A * @returns VBox status code. 2N/A * Tries to parse the given command line option. 2N/A * @returns 0 if we parsed, -1 if it didn't and anything else means exit. 2N/A * @param ppszShort If not NULL it points to the short option iterator. a short argument. 2N/A * If NULL examine argv[*pi]. 2N/A * @param argc The argument count. 2N/A * @param argv The argument vector. * @param pi The argument vector index. Update if any value(s) are eaten. * Called before parsing arguments. * @returns VBox status code. /** Called from the worker thread. * @returns VBox status code. * @retval VINF_SUCCESS if exitting because *pfTerminate was set. * @param pfTerminate Pointer to a per service termination flag to check * before and after blocking. * Does termination cleanups. * @remarks This may be called even if pfnInit hasn't been called! /** Pointer to a VBOXSERVICE. */ /** Pointer to a const VBOXSERVICE. */ * @note Used on windows to name the service as well as the global mutex. */ /** The friendly service name. */ /** The service description (only W2K+ atm) */ #
define VBOXSERVICE_DESCRIPTION "Manages VM runtime information, time synchronization, guest control execution and miscellaneous utilities for guest operating systems."/** The following constant may be defined by including NtStatus.h. */ #
endif /* RT_OS_WINDOWS */ * Pipe IDs for handling the guest process poll set. /** Pipe for reading from guest process' stdout. */ /** Pipe for reading from guest process' stderr. */ /** Notification pipe for waking up the guest process * Request types to perform on a started guest process. /** Main control thread asked used to quit. */ /** Performs reading from stdout. */ /** Performs reading from stderr. */ /** Performs writing to stdin. */ /** Same as VBOXSERVICECTRLREQUEST_STDIN_WRITE, but * marks the end of input. */ * @todo Implement this! */ /** Gently ask process to terminate. * @todo Implement this! */ /** Ask the process in which status it * @todo Implement this! */ * Structure to perform a request on a started guest * process. Needed for letting the main guest control thread * to communicate (and wait) for a certain operation which * will be done in context of the started guest process thread. /** The request type to handle. */ /** Payload size; on input, this contains the (maximum) amount * of data the caller wants to write or to read. On output, /** Payload data; a pre-allocated data buffer for input/output. */ /** The context ID which is required to complete the /** The overall result of the operation. */ /** Pointer to request. */ * Structure for holding data for one (started) guest process. /** The worker thread. */ /** Shutdown indicator. */ /** Indicator set by the service thread exiting. */ /** Whether the service was started or not. */ /** Critical section for thread-safe use. */ /** @todo Document me! */ /** Name of specified user account to run the * guest process under. */ /** Password of specified user account. */ /** Overall time limit (in ms) that the guest process * is allowed to run. 0 for indefinite time. */ /** Pointer to the current IPC request being /** StdIn pipe for addressing writes to the * guest process' stdin.*/ /** The notification pipe associated with this guest process. * This is NIL_RTPIPE for output pipes. */ /** The other end of hNotificationPipeW. */ /** Pointer to thread data. */ * Request types to perform on a started guest process. /** Unknown status. Do not use / should not happen. */ #
endif /* VBOX_WITH_GUEST_CONTROL */ * A guest property cache. /** The client ID for HGCM communication. */ /** Head in a list of VBOXSERVICEVEPROPCACHEENTRY nodes. */ /** Critical section for thread-safe use. */ /** Pointer to a guest property cache. */ * An entry in the property cache (VBOXSERVICEVEPROPCACHE). * @todo r=bird: This is not really the node to the successor, but * rather the OUR node in the list. If it helps, remember that * its a doubly linked list. */ /** Name (and full path) of guest property. */ /** The last value stored (for reference). */ /** Reset value to write if property is temporary. If NULL, it will be /** Pointer to a cached guest property. */ #
endif /* VBOX_WITH_GUEST_PROPS */#
endif /* VBOX_WITH_GUEST_PROPS */#
endif /* RT_OS_WINDOWS *//* Guest control functions. */ /* Guest process functions. */ #
endif /* VBOX_WITH_GUEST_CONTROL */