Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: remoting/host/win/launch_process_with_token.cc

Issue 111373008: Update some uses of char16 to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/host/win/launch_process_with_token.h ('k') | remoting/host/win/security_descriptor.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/win/launch_process_with_token.h" 5 #include "remoting/host/win/launch_process_with_token.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <winternl.h> 8 #include <winternl.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 *process_information_out = response.process_information; 283 *process_information_out = response.process_information;
284 return true; 284 return true;
285 } 285 }
286 286
287 // Sends a remote process create request to the execution server. 287 // Sends a remote process create request to the execution server.
288 bool SendCreateProcessRequest( 288 bool SendCreateProcessRequest(
289 HANDLE pipe, 289 HANDLE pipe,
290 const base::FilePath::StringType& application_name, 290 const base::FilePath::StringType& application_name,
291 const CommandLine::StringType& command_line, 291 const CommandLine::StringType& command_line,
292 DWORD creation_flags, 292 DWORD creation_flags,
293 const char16* desktop_name) { 293 const base::char16* desktop_name) {
294 // |CreateProcessRequest| structure passes the same parameters to 294 // |CreateProcessRequest| structure passes the same parameters to
295 // the execution server as CreateProcessAsUser() function does. Strings are 295 // the execution server as CreateProcessAsUser() function does. Strings are
296 // stored as wide strings immediately after the structure. String pointers are 296 // stored as wide strings immediately after the structure. String pointers are
297 // represented as byte offsets to string data from the beginning of 297 // represented as byte offsets to string data from the beginning of
298 // the structure. 298 // the structure.
299 struct CreateProcessRequest { 299 struct CreateProcessRequest {
300 DWORD size; 300 DWORD size;
301 DWORD process_id; 301 DWORD process_id;
302 BOOL use_default_token; 302 BOOL use_default_token;
303 HANDLE token; 303 HANDLE token;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 } 366 }
367 367
368 // Requests the execution server to create a process in the specified session 368 // Requests the execution server to create a process in the specified session
369 // using the default (i.e. Winlogon) token. This routine relies on undocumented 369 // using the default (i.e. Winlogon) token. This routine relies on undocumented
370 // OS functionality and will likely not work on anything but XP or W2K3. 370 // OS functionality and will likely not work on anything but XP or W2K3.
371 bool CreateRemoteSessionProcess( 371 bool CreateRemoteSessionProcess(
372 uint32 session_id, 372 uint32 session_id,
373 const base::FilePath::StringType& application_name, 373 const base::FilePath::StringType& application_name,
374 const CommandLine::StringType& command_line, 374 const CommandLine::StringType& command_line,
375 DWORD creation_flags, 375 DWORD creation_flags,
376 const char16* desktop_name, 376 const base::char16* desktop_name,
377 PROCESS_INFORMATION* process_information_out) 377 PROCESS_INFORMATION* process_information_out)
378 { 378 {
379 DCHECK_LT(base::win::GetVersion(), base::win::VERSION_VISTA); 379 DCHECK_LT(base::win::GetVersion(), base::win::VERSION_VISTA);
380 380
381 base::win::ScopedHandle pipe; 381 base::win::ScopedHandle pipe;
382 if (!ConnectToExecutionServer(session_id, &pipe)) 382 if (!ConnectToExecutionServer(session_id, &pipe))
383 return false; 383 return false;
384 384
385 if (!SendCreateProcessRequest(pipe, application_name, command_line, 385 if (!SendCreateProcessRequest(pipe, application_name, command_line,
386 creation_flags, desktop_name)) { 386 creation_flags, desktop_name)) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 return true; 449 return true;
450 } 450 }
451 451
452 bool LaunchProcessWithToken(const base::FilePath& binary, 452 bool LaunchProcessWithToken(const base::FilePath& binary,
453 const CommandLine::StringType& command_line, 453 const CommandLine::StringType& command_line,
454 HANDLE user_token, 454 HANDLE user_token,
455 SECURITY_ATTRIBUTES* process_attributes, 455 SECURITY_ATTRIBUTES* process_attributes,
456 SECURITY_ATTRIBUTES* thread_attributes, 456 SECURITY_ATTRIBUTES* thread_attributes,
457 bool inherit_handles, 457 bool inherit_handles,
458 DWORD creation_flags, 458 DWORD creation_flags,
459 const char16* desktop_name, 459 const base::char16* desktop_name,
460 ScopedHandle* process_out, 460 ScopedHandle* process_out,
461 ScopedHandle* thread_out) { 461 ScopedHandle* thread_out) {
462 base::FilePath::StringType application_name = binary.value(); 462 base::FilePath::StringType application_name = binary.value();
463 463
464 STARTUPINFOW startup_info; 464 STARTUPINFOW startup_info;
465 memset(&startup_info, 0, sizeof(startup_info)); 465 memset(&startup_info, 0, sizeof(startup_info));
466 startup_info.cb = sizeof(startup_info); 466 startup_info.cb = sizeof(startup_info);
467 if (desktop_name) 467 if (desktop_name)
468 startup_info.lpDesktop = const_cast<char16*>(desktop_name); 468 startup_info.lpDesktop = const_cast<base::char16*>(desktop_name);
469 469
470 PROCESS_INFORMATION temp_process_info = {}; 470 PROCESS_INFORMATION temp_process_info = {};
471 BOOL result = CreateProcessAsUser(user_token, 471 BOOL result = CreateProcessAsUser(user_token,
472 application_name.c_str(), 472 application_name.c_str(),
473 const_cast<LPWSTR>(command_line.c_str()), 473 const_cast<LPWSTR>(command_line.c_str()),
474 process_attributes, 474 process_attributes,
475 thread_attributes, 475 thread_attributes,
476 inherit_handles, 476 inherit_handles,
477 creation_flags, 477 creation_flags,
478 NULL, 478 NULL,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 518
519 base::win::ScopedProcessInformation process_info(temp_process_info); 519 base::win::ScopedProcessInformation process_info(temp_process_info);
520 520
521 CHECK(process_info.IsValid()); 521 CHECK(process_info.IsValid());
522 process_out->Set(process_info.TakeProcessHandle()); 522 process_out->Set(process_info.TakeProcessHandle());
523 thread_out->Set(process_info.TakeThreadHandle()); 523 thread_out->Set(process_info.TakeThreadHandle());
524 return true; 524 return true;
525 } 525 }
526 526
527 } // namespace remoting 527 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/win/launch_process_with_token.h ('k') | remoting/host/win/security_descriptor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698