Changeset 40685 in vbox for trunk/src/VBox/Main/include
- Timestamp:
- Mar 28, 2012 2:48:00 PM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 77139
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/GuestImpl.h
r40084 r40685 175 175 HRESULT getProcessOutputInternal(ULONG aPID, ULONG aFlags, ULONG aTimeoutMS, 176 176 LONG64 aSize, ComSafeArrayOut(BYTE, aData), int *pRC); 177 HRESULT execute ProcessResult(const char *pszCommand, const char *pszUser, ULONG ulTimeout, PCALLBACKDATAEXECSTATUS pExecStatus, ULONG *puPID);177 HRESULT executeSetResult(const char *pszCommand, const char *pszUser, ULONG ulTimeout, PCALLBACKDATAEXECSTATUS pExecStatus, ULONG *puPID); 178 178 int executeStreamQueryFsObjInfo(IN_BSTR aObjName,GuestProcessStreamBlock &streamBlock, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAddAttribs); 179 int executeStreamDrain(ULONG aPID, ULONG ulFlags, GuestProcessStream &stream);179 int executeStreamDrain(ULONG aPID, ULONG ulFlags, GuestProcessStream *pStream); 180 180 int executeStreamGetNextBlock(ULONG ulPID, ULONG ulFlags, GuestProcessStream &stream, GuestProcessStreamBlock &streamBlock); 181 181 int executeStreamParseNextBlock(ULONG ulPID, ULONG ulFlags, GuestProcessStream &stream, GuestProcessStreamBlock &streamBlock); 182 182 HRESULT executeStreamParse(ULONG uPID, ULONG ulFlags, GuestCtrlStreamObjects &streamObjects); 183 HRESULT executeWaitForExit(ULONG uPID, ComPtr<IProgress> pProgress, ULONG uTimeoutMS, 184 ExecuteProcessStatus_T *pRetStatus, ULONG *puRetExitCode); 183 HRESULT executeWaitForExit(ULONG uPID, ComPtr<IProgress> pProgress, ULONG uTimeoutMS); 185 184 // Internal guest file functions 186 185 HRESULT fileExistsInternal(IN_BSTR aFile, IN_BSTR aUsername, IN_BSTR aPassword, BOOL *aExists); … … 211 210 /** Size of user-supplied data. */ 212 211 uint32_t cbData; 212 /** The host PID. Needed for translating to 213 * a guest PID. */ 214 uint32_t uHostPID; 213 215 /** Pointer to user-supplied IProgress. */ 214 216 ComObjPtr<Progress> pProgress; … … 219 221 220 222 int callbackAdd(const PVBOXGUESTCTRL_CALLBACK pCallbackData, uint32_t *puContextID); 223 int callbackAssignHostPID(uint32_t uContextID, uint32_t uHostPID); 221 224 void callbackDestroy(uint32_t uContextID); 222 225 void callbackRemove(uint32_t uContextID); 223 226 bool callbackExists(uint32_t uContextID); 224 227 void callbackFreeUserData(void *pvData); 228 uint32_t callbackGetHostPID(uint32_t uContextID); 225 229 int callbackGetUserData(uint32_t uContextID, eVBoxGuestCtrlCallbackType *pEnmType, void **ppvData, size_t *pcbData); 226 230 void* callbackGetUserDataMutableRaw(uint32_t uContextID, size_t *pcbData); … … 231 235 int callbackNotifyEx(uint32_t uContextID, int iRC, const char *pszMessage); 232 236 int callbackNotifyComplete(uint32_t uContextID); 233 int callbackNotifyAllForPID(uint32_t u PID, int iRC, const char *pszMessage);237 int callbackNotifyAllForPID(uint32_t uGuestPID, int iRC, const char *pszMessage); 234 238 int callbackWaitForCompletion(uint32_t uContextID, LONG lStage, LONG lTimeout); 235 239 … … 242 246 typedef struct VBOXGUESTCTRL_PROCESS 243 247 { 248 /** The guest PID -- needed for controlling the actual guest 249 * process which has its own PID (generated by the guest OS). */ 250 uint32_t mGuestPID; 251 /** The last reported process status. */ 244 252 ExecuteProcessStatus_T mStatus; 253 /** The process execution flags. */ 245 254 uint32_t mFlags; 255 /** The process' exit code. */ 246 256 uint32_t mExitCode; 247 257 } VBOXGUESTCTRL_PROCESS, *PVBOXGUESTCTRL_PROCESS; … … 250 260 typedef std::map< uint32_t, VBOXGUESTCTRL_PROCESS >::const_iterator GuestProcessMapIterConst; 251 261 252 int processGetStatus(uint32_t u32PID, PVBOXGUESTCTRL_PROCESS pProcess, bool fRemove); 253 int processSetStatus(uint32_t u32PID, ExecuteProcessStatus_T enmStatus, uint32_t uExitCode, uint32_t uFlags); 262 uint32_t processGetGuestPID(uint32_t uHostPID); 263 int processGetStatus(uint32_t uHostPID, PVBOXGUESTCTRL_PROCESS pProcess, bool fRemove); 264 int processSetStatus(uint32_t uHostPID, uint32_t uGuestPID, 265 ExecuteProcessStatus_T enmStatus, uint32_t uExitCode, uint32_t uFlags); 254 266 255 267 // Internal guest directory representation. … … 259 271 Bstr mFilter; 260 272 ULONG mFlags; 261 /** Associated PID of started vbox_ls tool. */273 /** Associated host PID of started vbox_ls tool. */ 262 274 ULONG mPID; 263 275 GuestProcessStream mStream; 264 #if 0265 /** Next enetry in our stream objects vector266 * to process. */267 uint32_t mNextEntry;268 /** The guest stream object containing all */269 GuestCtrlStreamObjects mStream;270 #endif271 276 } VBOXGUESTCTRL_DIRECTORY, *PVBOXGUESTCTRL_DIRECTORY; 272 277 typedef std::map< uint32_t, VBOXGUESTCTRL_DIRECTORY > GuestDirectoryMap; … … 280 285 * Handler for guest execution control notifications. 281 286 */ 282 HRESULT handleErrorCompletion(int rc); 283 HRESULT handleErrorHGCM(int rc); 287 HRESULT setErrorCompletion(int rc); 288 HRESULT setErrorFromProgress(ComPtr<IProgress> pProgress); 289 HRESULT setErrorHGCM(int rc); 284 290 # endif 285 291 … … 319 325 /** Next upcoming context ID. */ 320 326 volatile uint32_t mNextContextID; 327 /** Next upcoming host PID */ 328 volatile uint32_t mNextHostPID; 321 329 /** Next upcoming directory handle ID. */ 322 330 volatile uint32_t mNextDirectoryID;
Note:
See TracChangeset
for help on using the changeset viewer.