windows api
- RegDeleteKey 2015.03.17
- RegFlushKey 2015.03.17
- RegCloseKey 2015.03.17
- RegCreateKeyEx 2015.03.17
- Module32First 2015.03.17
- Thread32Next 2015.03.17
- Thread32First 2015.03.17
- TerminateThread 2015.03.17
- ExitThread 2015.03.17
- SuspendThread 2015.03.17
- OpenThread 2015.03.17
- ResumeThread 2015.03.17
- CreateThread 2015.03.17
- OpenProcess 2015.03.16
- CreateProcess 2015.03.04
RegDeleteKey
지정한 하위 키와 값을 삭제한다.
* 하위 키 안에 하위 키가 있으면 삭제 되지 않는다. 삭제 하려는 하위 키 안의 모든 하위 키를 먼저 삭제한 후 호출해야 한다. 하위 키 안에 있는 모든 하위 키들을 반복적으로 삭제 하려면 RegDeleteTree 또는 SHDeleteKey 함수를 사용한다.
64bit 운영 체제에서 64bit 레지스트리 키를 32bit 응용 프로그램으로 삭제할 시 실패를 반환한다, 이 경우 RegDeleteKeyEx 함수를 사용한다.
- 출처 : MSDN
hKey
- 삭제하려는 키의 상위 키에 접근 가능한 핸들을 설정한다.
- 핸들값을 루트(하이브)키로 설정하면 두 번째 파라메터에서 루트(하이브)키를 제외한 삭제하려는 키의 전체 경로를 명시해 준다.
lpSubKey
- 삭제하고자 하는 키의 이름을 설정한다.
- 이 값은 NULL로 설정할 수 없다.
Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.
Header : Winreg.h(include Windows.h)
DLL : Advapi32.dll
'Win32 API' 카테고리의 다른 글
RegDeleteKeyEx (0) | 2015.03.18 |
---|---|
RegEnumKeyEx (0) | 2015.03.17 |
RegFlushKey (0) | 2015.03.17 |
RegCloseKey (0) | 2015.03.17 |
RegCreateKeyEx (0) | 2015.03.17 |
RegFlushKey
열려있는 레지스트리 키의 변경된 사항을 적용한다.
*레지스트리에 대한 정보 변경 시 일정 시간 경과 후 자동 적용 되므로 이 함수를 의무적으로 호출할 필요는 없다, 레지스트리의 변경 정보를 확실히 적용 하고자 할 때 호출한다.
- 출처 : MSDN
hKey
- 열려있는 레지스트리 키에 대한 핸들을 설정한다.
- 키는 KEY_QUERY_VALUE 접근 권한으로 열려 있어야 한다.
Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.
Header : Winreg.h(include Windows.h)
DLL : Advapi32.dll
'Win32 API' 카테고리의 다른 글
RegEnumKeyEx (0) | 2015.03.17 |
---|---|
RegDeleteKey (0) | 2015.03.17 |
RegCloseKey (0) | 2015.03.17 |
RegCreateKeyEx (0) | 2015.03.17 |
Module32Next (0) | 2015.03.17 |
RegCloseKey
지정한 레지스트리 키에 접근 가능한 핸들을 닫는다.
- 출처 : MSDN
hKey
- 닫고자 하는 레지스트리 키에 대한 핸들을 설정한다.
- RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, RegOpenKeyTransacted, RegConnectRegistry로 얻어진 핸들은 닫는다.
Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.
Header : Winreg.h(include Windows.h)
DLL : Advapi32.dll
'Win32 API' 카테고리의 다른 글
RegDeleteKey (0) | 2015.03.17 |
---|---|
RegFlushKey (0) | 2015.03.17 |
RegCreateKeyEx (0) | 2015.03.17 |
Module32Next (0) | 2015.03.17 |
Module32First (0) | 2015.03.17 |
RegCreateKeyEx
레지스트리 키를 생성 또는 오픈한다.
* 키 이름은 대/소문자를 구분하지 않는다.
- 출처 : MSDN
hKey
- 생성 또는 오픈 할 키의 루트(하이브)키, 또는 RegCreateKeyEx 나 RegOpenKeyEx로 반환된 키를 설정한다.
- 일반적으로 미리 정의되어 있는 루트(하이브)키 중 하나를 선택한다.
lpSubKey
- 생성 또는 오픈 할 하위 키를 전달한다.
- 이 값은 NULL이 될 수 없다.
Reserved
- 예약 영역으로 항상 0을 전달한다.
lpClass
- 사용자 정의 클래스 유형을 설정한다.
- 일반적으로 NULL을 설정한다.
dwOptions
- 옵션들 중 하나를 설정한다.
- 일반적으로 REG_OPTOIN_NON_VOLATILE(값을 파일에 기록하여 재부팅 시 지워지지 않음)를 설정한다.
samDesired
- 키에 대한 접근 권한을 설정한다.
- 일반적으로 KEY_ALL_ACCESS 권한을 설정한다.
- 64bit 운영체제에서 32bit 프로그램으로 이 함수를 호출할 경우 KEY_WOW64_64KEY 권한을 추가한다.(정확히 얘기하면 64bit 운영체제에서 64bit 프로그램과 32bit 프로그램은 서로 다른 경로에 레지스트리가 저장 되는데 이러한 차이 때문에32bit 프로그램이 64bit 레지스트리에 접근 할 시에는 KEY_WOW64_64KEY 권한을 요청하여 제대로 된 접근이 가능하고 반대로 64bit 프로그램이 32bit 레지스트리에 접근 할 시에는 KEY_WOW64_32KEY권한을 요청하여 제대로 된 접근을 할 수 있다.)
lpSecurityAttributes
- 반환된 핸들을 자식 프로세스에게 상속할지 여부를 결정하는 SECURITY_ATTRIBUTES 구조체 변수의 주소를 설정한다.
- 상속하지 않을 경우 NULL을 설정한다.
phkResult
- 생성 또는 오픈 한 키에 접근할 수 있는 핸들을 저장 할 변수의 주소를 설정한다.
lpdwDisposition
- 생성 된 키 인지 또는 오픈된 키 인지에 대한 정보를 저장 할 변수의 주소를 설정한다.
- 해당 정보가 필요없을 시 NULL을 설정한다.
Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.
Header : Winreg.h(include Windows.h)
DLL : Advapi32.dll
'Win32 API' 카테고리의 다른 글
RegFlushKey (0) | 2015.03.17 |
---|---|
RegCloseKey (0) | 2015.03.17 |
Module32Next (0) | 2015.03.17 |
Module32First (0) | 2015.03.17 |
Thread32Next (0) | 2015.03.17 |
Module32First
스냅샷 정보에서 첫 번째 모듈의 정보를 읽어온다.
- 출처 : MSDN
- hSnapshot
- CreateToolhelp32Snapshot 함수 호출의 반환 값인 스냅샷 정보의 핸들을 전달한다.
- lpme
- 읽어온 모듈의 정보를 저장 할 MODULEENTRY32 구조체 변수의 주소를 전달한다.
- 구조체의 크기를 나타내는 dwSize의 멤버는 sizeof 연산자로 크기를 구하여 반드시 설정 해야한다.
Return value : 성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : TlHelp32.h
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
RegCreateKeyEx (0) | 2015.03.17 |
---|---|
Module32Next (0) | 2015.03.17 |
Thread32Next (0) | 2015.03.17 |
Thread32First (0) | 2015.03.17 |
TerminateThread (0) | 2015.03.17 |
Thread32Next
Thread32First 호출 이후 스냅샷 정보에서 다음 스레드의 정보를 읽어온다.
- 출처 : MSDN
- hSnapshot
- CreateToolhelp32Snapshot 함수 호출의 반환 값인 스냅샷 정보의 핸들을 전달한다.
- lpte
- 읽어온 스레드의 정보를 저장 할 THREADENTRY32 구조체 변수의 주소를 전달한다.
Return value : 성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : TlHelp32.h
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
Module32Next (0) | 2015.03.17 |
---|---|
Module32First (0) | 2015.03.17 |
Thread32First (0) | 2015.03.17 |
TerminateThread (0) | 2015.03.17 |
ExitThread (0) | 2015.03.17 |
Thread32First
스냅샷 정보에서 첫 번째 스레드 정보를 읽어온다.
- 출처 : MSDN
hSnapshot
- CreateToolhelp32Snapshot 함수 호출의 반환 값인 스냅샷 정보의 핸들을 전달한다.
lpte
- 읽어온 스레드의 정보를 저장 할 THREADENTRY32 구조체 변수의 주소를 전달한다.
- 구조체의 크기를 나타내는 dwSize의 멤버는 sizeof 연산자로 크기를 구하여 반드시 설정 해야한다.
Return value : 성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : TlHelp32.h
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
Module32First (0) | 2015.03.17 |
---|---|
Thread32Next (0) | 2015.03.17 |
TerminateThread (0) | 2015.03.17 |
ExitThread (0) | 2015.03.17 |
SuspendThread (0) | 2015.03.17 |
TerminateThread
지정한 스레드를 종료한다.
- 출처 : MSDN
hThread
- 종료 시키고자 하는 스레드의 핸들을 설정한다.
- 핸들의 접근 권한은 반드시 THREAD_TERMINATE를 가져야 한다.
dwExitCode
- 스레드 종료 코드를 설정한다.
- 스레드의 종료 코드를 확인하고자 할 때는 GetExitCodeThread 함수를 이용한다.
Return value : 성공 시 TRUE, 실패 시 FALSE를 반환 한다. 실패에 대한 자세한 정보는 GetLastError 함수를 통해 확인할 수 있다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
Thread32Next (0) | 2015.03.17 |
---|---|
Thread32First (0) | 2015.03.17 |
ExitThread (0) | 2015.03.17 |
SuspendThread (0) | 2015.03.17 |
OpenThread (0) | 2015.03.17 |
ExitThread
함수를 호출한 스레드를 종료한다.
- 출처 : MSDN
dwExitCode
- 스레드 종료 코드를 설정한다.
- 통상적으로 정상 종료 인경우 0을 비 정상 종료인 경우 -1을 입력 한다.
Return value : 반환 값은 없다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
Thread32First (0) | 2015.03.17 |
---|---|
TerminateThread (0) | 2015.03.17 |
SuspendThread (0) | 2015.03.17 |
OpenThread (0) | 2015.03.17 |
ResumeThread (0) | 2015.03.17 |
SuspendThread
지정한 스레드를 일시중단 시킨다.
- 출처 : MSDN
hThread
- 일시중단 시키고자 하는 스레드의 핸들을 설정한다.
- 이 핸들은 THREAD_SUSPEND_RESUME 접근 권한을 가지고 있어야 한다.
Return value : 성공 시 스레드의 이전 중단 카운트를 반환하고, 실패 시 -1을 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
TerminateThread (0) | 2015.03.17 |
---|---|
ExitThread (0) | 2015.03.17 |
OpenThread (0) | 2015.03.17 |
ResumeThread (0) | 2015.03.17 |
CreateThread (0) | 2015.03.17 |
OpenThread
기존 스레드의 핸들을 구한다.
- 출처 : MSDN
dwDesiredAccess
- 핸들을 얻어 접근 하고자 하는 스레드의 접근 권한을 설정 한다.
- 이 함수 호출의 반환 값인 핸들을 가지고 스레드에 접근할 때, 해당 핸들이 가지고 있는 권한 내에서 스레드 사용이 가능 하기 때문에 스레드에 접근 하고자 하는 목적에 맞는 접근 권한을 설정한다.
- 스레드의 전체 접근 권한을 지닌 핸들을 구하고자 할 때는 SeDebugPrivilege 특권을 활성화 시켜야 한다.
bInheritHandle
- 값이 TRUE면 이 프로세스에 의해 생성 된 프로세스는 핸들을 상속받고, FALSE면 상속하지 않는다.
dwThreadId
- 핸들을 얻고자 하는 스레드의 ID를 설정한다.
Return value : 성공 시 지정한 스레드에 접근 가능한 핸들이 반환되고, 실패 시 NULL이 반환된다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
ExitThread (0) | 2015.03.17 |
---|---|
SuspendThread (0) | 2015.03.17 |
ResumeThread (0) | 2015.03.17 |
CreateThread (0) | 2015.03.17 |
OpenProcess (0) | 2015.03.16 |
ResumeThread
일시중단 된 스레드를 재 실행 시킨다.
* 좀더 정확히 표현하면 스레드의 중단 카운트를 하나 감소 시키며, 중단 카운트가 0이 됬을 때 스레드는 재 실행된다.
- 출처 : MSDN
hThread
- 재 실행 시키고자 하는 스레드의 핸들을 설정한다.
- 이 핸들은 THREAD_SUSPEND_RESUME 접근 권한을 가지고 있어야 한다.
Return value : 성공 시 스레드의 이전 중단 카운트를 반환하고, 실패 시 -1을 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
SuspendThread (0) | 2015.03.17 |
---|---|
OpenThread (0) | 2015.03.17 |
CreateThread (0) | 2015.03.17 |
OpenProcess (0) | 2015.03.16 |
Process32Next (0) | 2015.03.16 |
CreateThread
함수를 호출한 프로세스 공간에 새로운 스레드를 생성한다.
* 다른 프로세스 공간에 새로운 스레드를 생성하려면 CreateRemoteThread 함수를 사용한다.
- 출처 : MSDN
-
lpThreadAttributes
- 반환된 핸들을 자식 프로세스에 상속 할 수 있는지 여부를 결정하는 SECURITY_ATTRIBUTES 구조체 변수의 주소를 지정한다.
- 이 값을 NULL로 설정 시, 핸들은 상속되지 않는다.
-
dwStackSize
- 스레드가 사용할 스택의 초기 크기값(바이트 단위)을 설정한다.
- 이 값을 0으로 설정 시 기본 크기 값인 1Mbyte가 설정된다.
-
lpStartAddress
- 생성된 스레드가 실행 할 명령이 정의되어 있는 스레드 함수의 시작 주소를 설정한다.(스레드 함수 이름을 설정하면 됨)
- 스레드 함수의 원형은 WinBase.h에 정의되어 있는 ThreadProc를 사용한다.
-
lpParameter
- 스레드 함수의 전달 인자를 설정한다.
- 전달 인자 없을 시 NULL을 설정한다.
-
dwCreationFlags
- 스레드 생성을 제어하는 플래그
- 일반적으로 0을 설정하며 0으로 설정 시 스레드 생성 후 바로 실행된다.
-
lpThreadId
- 생성된 스레드의 식별자인 TID를 저장할 변수의 주소를 설정한다.
- 스레드 ID값이 필요없을 경우 NULL을 설정하며, NULL 설정 시 값을 반환하지 않는다.
Return value : 성공 시 생성된 스레드의 핸들을 반환하고, 실패 시 NULL을 반환한다. 실패 에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
OpenThread (0) | 2015.03.17 |
---|---|
ResumeThread (0) | 2015.03.17 |
OpenProcess (0) | 2015.03.16 |
Process32Next (0) | 2015.03.16 |
Process32First (0) | 2015.03.16 |
OpenProcess
로컬에서 실행중인 함수를 호출하는 자기자신 또는 다른 프로세스의 핸들을 구한다.
- 출처 : MSDN
dwDesiredAccess
- 핸들을 얻어 접근 하고자 하는 프로세스의 접근 권한을 설정 한다.
- 이 함수 호출의 반환 값인 핸들을 가지고 프로세스에 접근할 때, 해당 핸들이 가지고 있는 권한 내에서 프로세스 사용이 가능 하기 때문에 프로세스에 접근 하고자 하는 목적에 맞는 접근 권한을 설정한다.
- 함수를 호출한 프로세스가 아닌 다른 프로세스의 전체 접근 권한을 지닌 핸들을 구하고자 할 때는 SeDebugPrivilege 특권을 활성화 시켜야 한다.
bInheritHandle
- 핸들의 상속여부를 지정한다.
- 이 값이 TRUE면 핸들을 상속, FALSE면 상속하지 않는다.
dwProcessId
- 핸들을 얻고자 하는 프로세스의 ID를 지정한다.
- 함수를 호출한 프로세스 자신의 PID를 얻고자 할 때는 GetCurrentProcessId 함수를 사용한다.
Return value : 성공 시 지정한 프로세스에 접근 가능한 핸들이 반환되고, 실패 시 NULL이 반환된다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
ResumeThread (0) | 2015.03.17 |
---|---|
CreateThread (0) | 2015.03.17 |
Process32Next (0) | 2015.03.16 |
Process32First (0) | 2015.03.16 |
CloseHandle (0) | 2015.03.16 |
CreateProcess
새로운 프로세스를 생성 한다.
- 그림 출처 : MSDN
-
lpApplicationName
- 윈도우즈 기반 어플리케이션의 실행 파일 이름 이다.
- 파일 이름의 확장자를 반드시 명시해 주어야 한다.
- 이 파라메터의 값을 NULL로 설정하면 lpCommandLine에서 파일 이름을 설정 한다.
-
lpCommandLine
- 실행 시 전달 할 명령 행 인자 이다.
- lpApplicationName이 NULL일 경우 이 파라메터에서 파일 이름 또는 파일 이름과 명령행 인자를 설정할 수 있다.
- 명령행 인자가 없을 경우 NULL을 줄 수 있으나 lpApplicationName과 함께 둘 다 NULL이 될 수는 없다.
- 전달할 값을 상수로 설정할 수 없다, 반드시 배열 변수에 전달할 인자를 입력 후 배열의 시작 주소를 설정 한다.
-
lpProcessAttributes
- 프로세스 보안 속성을 설정 한다.
- 일반적으로 사용하지 않으며 NULL을 설정 한다.
-
lpThreadAttributes
- 스레드 보안 속성을 지정 한다.
- 일반적으로 사용하지 않으며 NULL을 설정 한다.
-
bInheritHandles
- 프로세스 핸들의 상속 여부를 설정 한다.
- TRUE 면 자식 프로세스에게 상속 가능한 핸들을 생성하고, FALSE 면 상속 불가능한 핸들을 생성 한다.
-
dwCreationFlags
- 우선 순위 등급 및 프로세스의 생성을 제어하는 플래그 이다.
- Process Creation Flags의 값을 설정 한다.
- 일반적인 프로세스 생성 시 0을 설정 한다.
-
lpEnvironment
- 프로세스의 환경 블록을 설정 한다, 이 값이 NULL이면 부모 프로세스의 환경 블록을 사용 한다.
- 일반적으로 NULL값을 설정 한다.
-
lpCurrentDirectory
- 프로세스의 현재 디렉토리를 설정 한다, NULL값을 설정 하면 부모 프로세스의 현재 디렉토리가 해당 프로세스의 현재 디렉토리로 설정 된다.
- 일반적으로 NULL값을 설정 한다.
-
lpStartupInfo
- 프로세스의 초기화 정보를 설정 한다.
- STARTUPINFO(또는 STARTUPINFOEX) 구조체 변수의 값을 설정 하여 주소를 전달 한다.
- 일반적으로 멤버 값들을 설정하지 않으나 구조체의 크기를 설정하는 cb의 값은 반드시 입력이 되어 있어야 한다.
- 설정하지 않은 멤버 들은 0으로 초기화하여 전달 한다.
-
lpProcessInformation
- 프로세스의 생성 후 결과 정보를 받기 위한 파라메터이다.
- PROCESS_INFORMATION 구조체 변수의 주소를 전달 한다.
Return value : 성공 시 0이 아닌 값을 반환하고, 실패 시 0을 반환 한다.
실패에 대한 자세한 정보는 GetLastError 함수를 통해 확인할 수 있다.
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
WriteFile (0) | 2015.03.11 |
---|---|
ReadFile (0) | 2015.03.11 |
CreateFile (0) | 2015.03.10 |
TerminateProcess (0) | 2015.03.05 |
ExitProcess (0) | 2015.03.05 |