Methode ICorDebug::CreateProcess
Start een proces en de primaire thread onder het beheer van het foutopsporingsprogramma.
Syntaxis
HRESULT CreateProcess (
[in] LPCWSTR lpApplicationName,
[in] LPWSTR lpCommandLine,
[in] LPSECURITY_ATTRIBUTES lpProcessAttributes,
[in] LPSECURITY_ATTRIBUTES lpThreadAttributes,
[in] BOOL bInheritHandles,
[in] DWORD dwCreationFlags,
[in] PVOID lpEnvironment,
[in] LPCWSTR lpCurrentDirectory,
[in] LPSTARTUPINFOW lpStartupInfo,
[in] LPPROCESS_INFORMATION lpProcessInformation,
[in] CorDebugCreateProcessFlags debuggingFlags,
[out] ICorDebugProcess **ppProcess
);
Parameters
lpApplicationName
[in] Aanwijzer naar een door null beëindigde tekenreeks die aangeeft welke module moet worden uitgevoerd door het gestarte proces. De module wordt uitgevoerd in de beveiligingscontext van het aanroepende proces.
lpCommandLine
[in] Aanwijzer naar een door null beëindigde tekenreeks waarmee de opdrachtregel wordt opgegeven die moet worden uitgevoerd door het gestarte proces. De naam van de toepassing (bijvoorbeeld 'SomeApp.exe') moet het eerste argument zijn.
lpProcessAttributes
[in] Wijs een Win32-structuur SECURITY_ATTRIBUTES
aan waarmee de beveiligingsdescriptor voor het proces wordt opgegeven. Als lpProcessAttributes
dit null is, krijgt het proces een standaardbeveiligingsdescriptor.
lpThreadAttributes
[in] Wijs een Win32-structuur SECURITY_ATTRIBUTES
aan waarmee de beveiligingsdescriptor voor de primaire thread van het proces wordt opgegeven. Als lpThreadAttributes
dit null is, krijgt de thread een standaardbeveiligingsdescriptor.
bInheritHandles
[in] Stel deze optie in om true
aan te geven dat elke overgenomen ingang in het aanroepende proces wordt overgenomen door het gestarte proces of false
om aan te geven dat de ingangen niet worden overgenomen. De overgenomen ingangen hebben dezelfde waarde- en toegangsrechten als de oorspronkelijke ingangen.
dwCreationFlags
[in] Een bitsgewijze combinatie van de Win32 Process Creation Flags waarmee de prioriteitsklasse en het gedrag van het gestarte proces worden bepaald.
lpEnvironment
[in] Wijs een omgevingsblok aan voor het nieuwe proces.
lpCurrentDirectory
[in] Aanwijzer naar een door null beëindigde tekenreeks waarmee het volledige pad naar de huidige map voor het proces wordt opgegeven. Als deze parameter null is, heeft het nieuwe proces hetzelfde huidige station en dezelfde map als het aanroepende proces.
lpStartupInfo
[in] Wijs een Win32-structuur STARTUPINFOW
aan die het vensterstation, het bureaublad, de standaardgrepen en het uiterlijk van het hoofdvenster voor het gestarte proces aangeeft.
lpProcessInformation
[in] Wijs een Win32-structuur PROCESS_INFORMATION
aan waarmee de identificatiegegevens over het te starten proces worden opgegeven.
debuggingFlags
[in] Een waarde van de opsomming CorDebugCreateProcessFlags waarmee de foutopsporingsopties worden opgegeven.
ppProcess
[uit] Een aanwijzer naar het adres van een ICorDebugProcess-object dat het proces vertegenwoordigt.
Opmerkingen
De parameters van deze methode zijn hetzelfde als die van de Win32-methode CreateProcess
.
Als u foutopsporing in de gemengde modus wilt inschakelen, stelt u in dwCreationFlags
op DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. Als u alleen beheerde foutopsporing wilt gebruiken, moet u deze vlaggen niet instellen.
Als het foutopsporingsprogramma en het proces dat moet worden opgespoord (het gekoppelde proces) één console delen en als interop-foutopsporing wordt gebruikt, is het mogelijk dat het gekoppelde proces consolevergrendelingen vasthoudt en stopt bij een foutopsporingsgebeurtenis. Het foutopsporingsprogramma blokkeert vervolgens elke poging om de console te gebruiken. U kunt dit probleem voorkomen door de vlag CREATE_NEW_CONSOLE in de parameter in te dwCreationFlags
stellen.
Interop-foutopsporing wordt niet ondersteund op Win9x- en niet-x86-platforms, zoals platformen op basis van IA-64 en AMD64.
Vereisten
Platformen: Zie Systeemvereisten.
Header: CorDebug.idl, CorDebug.h
Bibliotheek: CorGuids.lib
.NET Framework-versies: beschikbaar sinds 1.0