FreeRDP
|
#include <winpr/winpr.h>
#include <winpr/wtypes.h>
#include <winpr/spec.h>
#include <winpr/handle.h>
Data Structures | |
struct | STARTUPINFOA |
struct | STARTUPINFOW |
Typedefs | |
typedef struct STARTUPINFOA * | LPSTARTUPINFOA |
typedef struct STARTUPINFOW * | LPSTARTUPINFOW |
typedef STARTUPINFOA | STARTUPINFO |
typedef LPSTARTUPINFOA | LPSTARTUPINFO |
typedef void(* | PAPCFUNC) (ULONG_PTR Parameter) |
Functions | |
WINPR_API BOOL | CreateProcessA (LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessW (LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessAsUserA (HANDLE hToken, LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessAsUserW (HANDLE hToken, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessWithLogonA (LPCSTR lpUsername, LPCSTR lpDomain, LPCSTR lpPassword, DWORD dwLogonFlags, LPCSTR lpApplicationName, LPSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessWithLogonW (LPCWSTR lpUsername, LPCWSTR lpDomain, LPCWSTR lpPassword, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessWithTokenA (HANDLE hToken, DWORD dwLogonFlags, LPCSTR lpApplicationName, LPSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
WINPR_API BOOL | CreateProcessWithTokenW (HANDLE hToken, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) |
DECLSPEC_NORETURN WINPR_API VOID | ExitProcess (UINT uExitCode) |
WINPR_API BOOL | GetExitCodeProcess (HANDLE hProcess, LPDWORD lpExitCode) |
WINPR_API HANDLE | _GetCurrentProcess (void) |
WINPR_API DWORD | GetCurrentProcessId (void) |
WINPR_API BOOL | TerminateProcess (HANDLE hProcess, UINT uExitCode) |
WINPR_API LPWSTR * | CommandLineToArgvW (LPCWSTR lpCmdLine, int *pNumArgs) |
WINPR_API BOOL | SetThreadPriority (HANDLE hThread, int nPriority) |
WINPR_API HANDLE | CreateThread (LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId) |
WINPR_API HANDLE | CreateRemoteThread (HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId) |
WINPR_API VOID | ExitThread (DWORD dwExitCode) |
WINPR_API BOOL | GetExitCodeThread (HANDLE hThread, LPDWORD lpExitCode) |
WINPR_API HANDLE | _GetCurrentThread (void) |
WINPR_API DWORD | GetCurrentThreadId (void) |
WINPR_API DWORD | QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData) |
WINPR_API DWORD | ResumeThread (HANDLE hThread) |
WINPR_API DWORD | SuspendThread (HANDLE hThread) |
WINPR_API BOOL | SwitchToThread (void) |
WINPR_API BOOL | TerminateThread (HANDLE hThread, DWORD dwExitCode) |
WINPR_API DWORD | GetCurrentProcessorNumber (void) |
WINPR_API DWORD | TlsAlloc (void) |
WINPR_API LPVOID | TlsGetValue (DWORD dwTlsIndex) |
WINPR_API BOOL | TlsSetValue (DWORD dwTlsIndex, LPVOID lpTlsValue) |
WINPR_API BOOL | TlsFree (DWORD dwTlsIndex) |
WINPR_API LPSTR * | CommandLineToArgvA (LPCSTR lpCmdLine, int *pNumArgs) |
WINPR_API VOID | DumpThreadHandles (void) |
#define CommandLineToArgv CommandLineToArgvA |
#define CREATE_SUSPENDED 0x00000004 |
#define CreateProcess CreateProcessA |
#define CreateProcessAsUser CreateProcessAsUserA |
#define CreateProcessWithLogon CreateProcessWithLogonA |
#define CreateProcessWithToken CreateProcessWithTokenA |
#define LOGON_NETCREDENTIALS_ONLY 0x00000002 |
#define LOGON_WITH_PROFILE 0x00000001 |
#define LOGON_ZERO_PASSWORD_BUFFER 0x80000000 |
#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000 |
#define STARTF_FORCEOFFFEEDBACK 0x00000080 |
#define STARTF_FORCEONFEEDBACK 0x00000040 |
#define STARTF_PREVENTPINNING 0x00002000 |
#define STARTF_RUNFULLSCREEN 0x00000020 |
#define STARTF_TITLEISAPPID 0x00001000 |
#define STARTF_TITLEISLINKNAME 0x00000800 |
#define STARTF_USECOUNTCHARS 0x00000008 |
#define STARTF_USEFILLATTRIBUTE 0x00000010 |
#define STARTF_USEHOTKEY 0x00000200 |
#define STARTF_USEPOSITION 0x00000004 |
#define STARTF_USESHOWWINDOW 0x00000001 |
#define STARTF_USESIZE 0x00000002 |
#define STARTF_USESTDHANDLES 0x00000100 |
#define THREAD_MODE_BACKGROUND_BEGIN 0x00010000 |
#define THREAD_MODE_BACKGROUND_END 0x00020000 |
#define THREAD_PRIORITY_ABOVE_NORMAL 1 |
#define THREAD_PRIORITY_BELOW_NORMAL -1 |
#define THREAD_PRIORITY_HIGHEST 2 |
#define THREAD_PRIORITY_IDLE -15 |
#define THREAD_PRIORITY_LOWEST -2 |
#define THREAD_PRIORITY_NORMAL 0 |
#define THREAD_PRIORITY_TIME_CRITICAL 15 |
#define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF) |
typedef LPSTARTUPINFOA LPSTARTUPINFO |
typedef struct STARTUPINFOA * LPSTARTUPINFOA |
typedef struct STARTUPINFOW * LPSTARTUPINFOW |
typedef void(* PAPCFUNC) (ULONG_PTR Parameter) |
typedef STARTUPINFOA STARTUPINFO |
WINPR_API HANDLE _GetCurrentProcess | ( | void | ) |
WINPR_API HANDLE _GetCurrentThread | ( | void | ) |
WINPR_API LPSTR* CommandLineToArgvA | ( | LPCSTR | lpCmdLine, |
int * | pNumArgs | ||
) |
CommandLineToArgvW function: http://msdn.microsoft.com/en-us/library/windows/desktop/bb776391/
CommandLineToArgvW has a special interpretation of backslash characters when they are followed by a quotation mark character ("), as follows:
2n backslashes followed by a quotation mark produce n backslashes followed by a quotation mark. (2n) + 1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark. n backslashes not followed by a quotation mark simply produce n backslashes.
The address returned by CommandLineToArgvW is the address of the first element in an array of LPWSTR values; the number of pointers in this array is indicated by pNumArgs. Each pointer to a null-terminated Unicode string represents an individual argument found on the command line.
CommandLineToArgvW allocates a block of contiguous memory for pointers to the argument strings, and for the argument strings themselves; the calling application must free the memory used by the argument list when it is no longer needed. To free the memory, use a single call to the LocalFree function. Parsing C++ Command-Line Arguments: http://msdn.microsoft.com/en-us/library/windows/desktop/17w5ykft
Microsoft C/C++ startup code uses the following rules when interpreting arguments given on the operating system command line:
Arguments are delimited by white space, which is either a space or a tab.
The caret character (^) is not recognized as an escape character or delimiter. The character is handled completely by the command-line parser in the operating system before being passed to the argv array in the program.
A string surrounded by double quotation marks ("string") is interpreted as a single argument, regardless of white space contained within. A quoted string can be embedded in an argument.
A double quotation mark preceded by a backslash (") is interpreted as a literal double quotation mark character (").
Backslashes are interpreted literally, unless they immediately precede a double quotation mark.
If an even number of backslashes is followed by a double quotation mark, one backslash is placed in the argv array for every pair of backslashes, and the double quotation mark is interpreted as a string delimiter.
If an odd number of backslashes is followed by a double quotation mark, one backslash is placed in the argv array for every pair of backslashes, and the double quotation mark is "escaped" by the remaining backslash, causing a literal double quotation mark (") to be placed in argv.
WINPR_API LPWSTR* CommandLineToArgvW | ( | LPCWSTR | lpCmdLine, |
int * | pNumArgs | ||
) |
WINPR_API BOOL CreateProcessA | ( | LPCSTR | lpApplicationName, |
LPSTR | lpCommandLine, | ||
LPSECURITY_ATTRIBUTES | lpProcessAttributes, | ||
LPSECURITY_ATTRIBUTES | lpThreadAttributes, | ||
BOOL | bInheritHandles, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOA | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessAsUserA | ( | HANDLE | hToken, |
LPCSTR | lpApplicationName, | ||
LPSTR | lpCommandLine, | ||
LPSECURITY_ATTRIBUTES | lpProcessAttributes, | ||
LPSECURITY_ATTRIBUTES | lpThreadAttributes, | ||
BOOL | bInheritHandles, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOA | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessAsUserW | ( | HANDLE | hToken, |
LPCWSTR | lpApplicationName, | ||
LPWSTR | lpCommandLine, | ||
LPSECURITY_ATTRIBUTES | lpProcessAttributes, | ||
LPSECURITY_ATTRIBUTES | lpThreadAttributes, | ||
BOOL | bInheritHandles, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCWSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOW | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessW | ( | LPCWSTR | lpApplicationName, |
LPWSTR | lpCommandLine, | ||
LPSECURITY_ATTRIBUTES | lpProcessAttributes, | ||
LPSECURITY_ATTRIBUTES | lpThreadAttributes, | ||
BOOL | bInheritHandles, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCWSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOW | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessWithLogonA | ( | LPCSTR | lpUsername, |
LPCSTR | lpDomain, | ||
LPCSTR | lpPassword, | ||
DWORD | dwLogonFlags, | ||
LPCSTR | lpApplicationName, | ||
LPSTR | lpCommandLine, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOA | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessWithLogonW | ( | LPCWSTR | lpUsername, |
LPCWSTR | lpDomain, | ||
LPCWSTR | lpPassword, | ||
DWORD | dwLogonFlags, | ||
LPCWSTR | lpApplicationName, | ||
LPWSTR | lpCommandLine, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCWSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOW | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessWithTokenA | ( | HANDLE | hToken, |
DWORD | dwLogonFlags, | ||
LPCSTR | lpApplicationName, | ||
LPSTR | lpCommandLine, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOA | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API BOOL CreateProcessWithTokenW | ( | HANDLE | hToken, |
DWORD | dwLogonFlags, | ||
LPCWSTR | lpApplicationName, | ||
LPWSTR | lpCommandLine, | ||
DWORD | dwCreationFlags, | ||
LPVOID | lpEnvironment, | ||
LPCWSTR | lpCurrentDirectory, | ||
LPSTARTUPINFOW | lpStartupInfo, | ||
LPPROCESS_INFORMATION | lpProcessInformation | ||
) |
WINPR_API HANDLE CreateRemoteThread | ( | HANDLE | hProcess, |
LPSECURITY_ATTRIBUTES | lpThreadAttributes, | ||
SIZE_T | dwStackSize, | ||
LPTHREAD_START_ROUTINE | lpStartAddress, | ||
LPVOID | lpParameter, | ||
DWORD | dwCreationFlags, | ||
LPDWORD | lpThreadId | ||
) |
WINPR_API HANDLE CreateThread | ( | LPSECURITY_ATTRIBUTES | lpThreadAttributes, |
SIZE_T | dwStackSize, | ||
LPTHREAD_START_ROUTINE | lpStartAddress, | ||
LPVOID | lpParameter, | ||
DWORD | dwCreationFlags, | ||
LPDWORD | lpThreadId | ||
) |
WINPR_API VOID DumpThreadHandles | ( | void | ) |
DECLSPEC_NORETURN WINPR_API VOID ExitProcess | ( | UINT | uExitCode | ) |
WINPR_API VOID ExitThread | ( | DWORD | dwExitCode | ) |
WINPR_API DWORD GetCurrentProcessId | ( | void | ) |
WINPR_API DWORD GetCurrentProcessorNumber | ( | void | ) |
WINPR_API DWORD GetCurrentThreadId | ( | void | ) |
WINPR_API BOOL GetExitCodeProcess | ( | HANDLE | hProcess, |
LPDWORD | lpExitCode | ||
) |
WINPR_API BOOL GetExitCodeThread | ( | HANDLE | hThread, |
LPDWORD | lpExitCode | ||
) |
WINPR_API DWORD ResumeThread | ( | HANDLE | hThread | ) |
WINPR_API BOOL SetThreadPriority | ( | HANDLE | hThread, |
int | nPriority | ||
) |
WINPR_API DWORD SuspendThread | ( | HANDLE | hThread | ) |
WINPR_API BOOL SwitchToThread | ( | void | ) |
WINPR_API BOOL TerminateThread | ( | HANDLE | hThread, |
DWORD | dwExitCode | ||
) |
WINPR_API DWORD TlsAlloc | ( | void | ) |
WinPR: Windows Portable Runtime Process Thread Functions
Copyright 2012 Marc-Andre Moreau marca ndre .more au@g mail. com
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. TlsAlloc TlsFree TlsGetValue TlsSetValue
WINPR_API BOOL TlsFree | ( | DWORD | dwTlsIndex | ) |
WINPR_API LPVOID TlsGetValue | ( | DWORD | dwTlsIndex | ) |
WINPR_API BOOL TlsSetValue | ( | DWORD | dwTlsIndex, |
LPVOID | lpTlsValue | ||
) |