Total

recv

2015. 4. 9. 17:49

상대방과 연결되어 있는 소켓을 이용하여 상대방으로부터 데이터를 수신한다.

* TCP 프로토콜을 이용한 통신에서 상대방으로부터 데이터를 받을 때 사용한다.


- 출처 : MSDN


  • s

- 상대방과 연결된 소켓의 식별자를 설정한다.


  • buf

- 수신한 데이터를 저장 할 메모리의 주소를 설정한다.


  • len

- buf 파라메터가 가리키는 수신 데이터를 저장 할 메모리의 크기를 설정한다.


  • flags

- 수신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.

- 옵션 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.


Return value : 성공 시 수신 된 데이터 바이트 수를 반환하고, 소켓 정상 종료 시 0을 반환한다. 실패 시 SOCKET_ERROR(-1)을 반환하고, 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

recvfrom  (0) 2015.04.10
sendto  (0) 2015.04.10
send  (0) 2015.04.09
closesocket  (0) 2015.03.31
connect  (0) 2015.03.31

send

2015. 4. 9. 17:16

상대방과 연결되어 있는 소켓을 이용하여 상대방에게 데이터를 송신한다.

* TCP 프로토콜을 이용한 통신에서 상대방에게 데이터를 보낼 때 사용한다.


- 출처 : MSDN


  • s

- 상대방과 연결된 소켓의 식별자를 설정한다.


  • buf

- 송신 하고자 하는 데이터가 들어있는 메모리의 주소를 설정한다.


  • len

- buf 파라메터가 가리키는 송신 데이터의 길이를 설정한다.


  • flags

- 송신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.

- 옵션 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.


Return value : 성공 시 송신 된 데이터 바이트 수를 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환하다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

sendto  (0) 2015.04.10
recv  (0) 2015.04.09
closesocket  (0) 2015.03.31
connect  (0) 2015.03.31
accept  (0) 2015.03.31

closesocket

2015. 3. 31. 19:45

지정한 소켓을 종료한다.


- 출처 : MSDN


  • s

- 종료할 소켓의 식별자를 설정한다.


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header :  Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

recv  (0) 2015.04.09
send  (0) 2015.04.09
connect  (0) 2015.03.31
accept  (0) 2015.03.31
listen  (0) 2015.03.31

connect

2015. 3. 31. 19:34

서버의 리스닝 소켓으로 요청을 보내 서버와 통신을 위한 연결을 수립한다.


- 출처 : MSDN


  • s

- 서버와 통신할 소켓의 식별자를 설정한다.


  • name

- 통신할 서버의 주소정보를 저장한 SOCKADDR_IN 구조체 변수의 주소를 전달한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.


  • namelen

- 두 번째 name 파라메터에 전달되는 데이터의 길이를 설정한다.


Return value :  성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header :  Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

send  (0) 2015.04.09
closesocket  (0) 2015.03.31
accept  (0) 2015.03.31
listen  (0) 2015.03.31
bind  (0) 2015.03.31

accept

2015. 3. 31. 19:11

리스닝 소켓으로 들어오는 클라이언트의 요청을 허용하여 클라이언트와 통신을 위한 새로운 소켓을 생성한다.


- 출처 : MSDN


  • s

- 클라이언트의 요청이 들어오는 리스닝 소켓의 식별자를 설정한다.


  • addr

- 요청한 클라이언트의 주소 정보를 저장할 SOCKADDR_IN 구조체 변수의 주소를 전달한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.


  • addrlen

- 두 번째 addr 파라메터에 전달되는 데이터의 길이를 저장한 메모리의 주소를 설정한다.

- 함수 호출 후 연결된 클라이언트의 주소 정보 크기가 저장 된다.


Return value : 성공 시 클라이언트와 통신을 위한 새로운 소켓이 생성되어 클라이언트와 연결이 되고 새로 생성된 소켓의 식별자가 반환된다, 실패 시 INVALID_SOCKET이 반환된다. 실패에 대한 자세한 정보는 WSAGetLastError 함수를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

closesocket  (0) 2015.03.31
connect  (0) 2015.03.31
listen  (0) 2015.03.31
bind  (0) 2015.03.31
socket  (0) 2015.03.31

listen

2015. 3. 31. 18:23

지정한 소켓을 클라이언트의 요청을 수신할 수 있는 리스닝 상태로 만들어 준다.


- 출처 : MSDN


  • s

- 리스닝 상태로 전환할 소켓의 식별자를 설정한다.

 

  • backlog

- 연결 보류중인 클라이언트의 요청을 위한 대기열 큐의 최대 길이를 설정한다.

- 일반적으로 운영체제에서 제공하는 최대 크기 값인 SOMAXCONN을 설정한다.


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

connect  (0) 2015.03.31
accept  (0) 2015.03.31
bind  (0) 2015.03.31
socket  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25

bind

2015. 3. 31. 17:23

소켓에 로컬 주소를 연결한다.


- 출처 : MSDN


  • s

- 주소 정보를 연결할 소켓의 식별자를 설정한다.


  • name

- 연결할 주소 정보가 들어있는 SOCKADDR_IN 구조체 변수의 주소를 설정한다.

- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN에 정보를 입력한 후 강제 형변환하여 인자를 전달한다.


  • namelen

- 두 번째 name 파라메터에 전달되는 데이터의 길이를 설정한다.


Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header :  Winsock2.h


DLL : ws2_32.dll


'Win32 API' 카테고리의 다른 글

accept  (0) 2015.03.31
listen  (0) 2015.03.31
socket  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25
EnterCriticalSection  (0) 2015.03.25

socket

2015. 3. 31. 16:41

소켓을 생성한다.


- 출처 : MSDN

  • af

- 주소 체계를 설정한다.

- 일반적으로 IPv4 프로토콜을 사용하는 경우 주소 체계는 AF_INET을 설정한다.


  • type

- 생성할 소켓의 타입을 설정한다.

- AF_INET에서 TCP용 소켓을 생성할 시에는 SOCK_STREAM을 설정한다.

- AF_INET에서 UDP용 소켓을 생성할 시에는 SOCK_DGRAM을 설정한다.


  • protocol

- 프로토콜을 설정한다.

- 0의 값을 설정하면 타입에 맞는 프로토콜이 자동 선택된다.

- TCP 프로토콜을 사용할 때 IPPROTO_TCP를 설정한다.(SOCK_STREAM 타입일 때 0 설정 시 TCP 프로토콜이 자동 선택된다.)

- UDP 프로토콜을 사용할 때 IPPROTO_UDP를 설정한다.(SOCK_DGRAM 타입일 때 0 설정 시 UDP 프로토콜이 자동 선택된다.


Return value : 성공 시 생성된 소켓의 식별자(디스크립터)를 반환하고, 실패 시 INVALID_SOCKET을 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.


Header : Winsock2.h


DLL : Ws2_32.dll


'Win32 API' 카테고리의 다른 글

listen  (0) 2015.03.31
bind  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25
EnterCriticalSection  (0) 2015.03.25
InitializeCriticalSectionAndSpinCount  (0) 2015.03.25

LeaveCriticalSection

2015. 3. 25. 17:53

지정한 크리티컬 섹션 오브젝트의 소유권을 해제한다.



  • lpCriticalSection

- 크리티컬 섹션 오브젝트의 주소를 설정한다.


Return value : 반환 값은 없다.


Header : WinBase.h(include Windows.h)


DLL : Kernel32.dll


'Win32 API' 카테고리의 다른 글

bind  (0) 2015.03.31
socket  (0) 2015.03.31
EnterCriticalSection  (0) 2015.03.25
InitializeCriticalSectionAndSpinCount  (0) 2015.03.25
InitializeCriticalSection  (0) 2015.03.25

EnterCriticalSection

2015. 3. 25. 17:34

지정한 크리티컬 섹션 오브젝트의 소유권을 기다린다. 함수를 호출한 스레드가 소유권을 획득할 때까지 함수는 반환되지 않는다.



  • lpCriticalSection

- 크리티컬 섹션 오브젝트의 주소를 설정한다.


Return value : 반환 값은 없다.


Header : WinBase.h(include Windows.h)


DLL : Kernel32.dll


'Win32 API' 카테고리의 다른 글

socket  (0) 2015.03.31
LeaveCriticalSection  (0) 2015.03.25
InitializeCriticalSectionAndSpinCount  (0) 2015.03.25
InitializeCriticalSection  (0) 2015.03.25
RegGetValue  (0) 2015.03.25

크리티컬 섹션 오브젝트를 초기화하고 스핀 카운트를 설정한다.

* 스핀 카운트란 크리티컬 섹션 영역 접근 시 해당 자원을 획득할 때까지 지정한 카운트 만큼의 루프를 돌며 대기하기 위한 설정 값을 말한다.



  • lpCriticalSection

- 크리티컬 섹션 오브젝트의 주소를 설정한다.


  • dwSpinCount

- 스핀 카운트를 설정한다.

- 일반적으로 2000 또는 4000을 설정하나 시스템에 최적화 된 값을 찾아 설정할 수 있다.

- 싱글 코어 환경에서는 이 값은 무시되고 자동으로 0으로 초기화 된다.


Return value : 성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.


Header : WinBase.h(include Windows.h)


DLL : Kernel32.dll


'Win32 API' 카테고리의 다른 글

LeaveCriticalSection  (0) 2015.03.25
EnterCriticalSection  (0) 2015.03.25
InitializeCriticalSection  (0) 2015.03.25
RegGetValue  (0) 2015.03.25
RegSetValueEx  (0) 2015.03.19

InitializeCriticalSection

2015. 3. 25. 16:48

크리티컬 섹션 오브젝트를 초기화 한다.


  • lpCriticalSection

- 크리티컬 섹션 오브젝트의 주소를 설정한다.


Return value : 반환 값은 없다.


Header : WinBase.h(include Windows.h)


DLL : Kernel32.dll


'Win32 API' 카테고리의 다른 글

EnterCriticalSection  (0) 2015.03.25
InitializeCriticalSectionAndSpinCount  (0) 2015.03.25
RegGetValue  (0) 2015.03.25
RegSetValueEx  (0) 2015.03.19
RegEnumValue  (0) 2015.03.18

RegGetValue

2015. 3. 25. 16:22

지정한 레지스트리 값의 타입과 데이터를 읽어온다.


- 출처 : MSDN


  • hkey

- 열려있는 레지스트리 키에 대한 핸들을 설정한다.

- 키는 반드시 KEY_QUERY_VALUE 접근 권한으로 열려 있어야 한다.


  • lpSubKey

- 값을 읽어올 hkey 파라메터의 하위 키를 설정한다.

- 대/소문자를 구분하지 않는다.


  • lpValue

- 읽어올 값의 이름을 설정한다.

- 이 파라메터의 값을 NULL 또는 빈 문자열("")로 설정 시 키 안의 이름이 없는 값 또는 기본 값을 읽어온다.


  • dwFlags

- 읽어 올 값의 종류를 제한한다.

- 읽어 올 타입의 종류를 제한하지 않을 때 RRF_RT_ANY를 설정한다.


  • pdwType

- 저장 된 값의 종류를 나타내는 코드를 저장 할 메모리의 주소를 설정한다.

- 값의 종류를 파악할 필요 없을 경우 NULL을 설정한다.


  • pvData

- 값의 데이터를 저장 할 메모리의 주소를 설정한다.

- 데이터가 필요 없을 경우 NULL을 설정한다.


  • pcbData

- pvData파라메터 사용 시 pvData에 설정하는 메모리의 크기를 전달하며 함수 종료 시 저장 된 데이터의 크기가 설정된다.

- pvData를 NULL로 설정 했을시 이 파라메터 또한 NULL을 설정한다.


Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고 pvData에 설정된 메모리의 크기가 저장 하려는 데이터의 크기보다 작을 시에는 ERROR_MORE_DATA(234), 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.


Header : Winreg.h(include Windows.h)


DLL : Advapi32.dll


'Win32 API' 카테고리의 다른 글

InitializeCriticalSectionAndSpinCount  (0) 2015.03.25
InitializeCriticalSection  (0) 2015.03.25
RegSetValueEx  (0) 2015.03.19
RegEnumValue  (0) 2015.03.18
RegDeleteValue  (0) 2015.03.18

RegSetValueEx

2015. 3. 19. 03:55

지정된 열려있는 레지스트리 키에 값의 데이터와 타입을 설정한다.


- 출처 : MSDN


  • hKey

- 열려있는 레지스트리 키에 대한 핸들을 설정한다.

- 키는 반드시 KEY_SET_VALUE 접근 권한으로 열려 있어야 한다. 


  • lpValueName

- 값의 이름을 설정한다.

- 이름을 NULL 또는 빈 문자열("")로 설정하면 키의 이름 및 데이터는 디폴트 값으로 설정된다.

- 레지스트리 값 이름의 최대 사이즈는 32,767bytes 이다. 


  • Reserved

- 예약된 영역으로 항상 0을 설정한다.


  • dwType

- 데이터의 타입을 설정한다.


  • lpData

- 저장할 데이터가 들어있는 메모리의 주소를 설정한다.

- 전달 주소값은 BYTE* 로 형 변환 해서 전달한다.


  • cbData

- lpData에서 전달한 데이터의 크기를 설정한다.


Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.


Header : Winreg.h(include Windows.h)


DLL : Advapi32.dll


'Win32 API' 카테고리의 다른 글

InitializeCriticalSection  (0) 2015.03.25
RegGetValue  (0) 2015.03.25
RegEnumValue  (0) 2015.03.18
RegDeleteValue  (0) 2015.03.18
RegDeleteKeyEx  (0) 2015.03.18

RegEnumValue

2015. 3. 18. 17:26
지정된 열려있는 레지스트리 키의 값을 열거한다. 호출 될 때마다 키 안의 값의 이름과 데이터를 읽어온다.


- 출처 : MSDN


  • hKey

- 열려있는 레지스트리 키에 대한 핸들을 설정한다.

- 키는 반드시 KEY_QUERY_VALUE 접근 권한으로 열려 있어야 한다.


  • dwIndex

- 읽어 올 값의 인덱스 번호를 설정한다.(번호는 0부터 시작)


  • lpValueName

- 읽어 온 값의 이름을 저장 할 메모리의 주소를 설정한다.

- 레지스트리 값 이름의 최대 사이즈는 32,767bytes 이다. 


  • lpcchValueName

- lpValueName 파라메터에 전달되는 메모리의 크기를 저장해논 메모리의 주소를 전달한다.

- 함수 호출이 끝나면 이 파라메터가 가리키는 메모리에는 널 문자를 제외한 문자의 길이가 저장된다.


  • lpReserved

- 예약된 영역으로 항상 NULL을 설정한다.


  • lpType

- 읽어 온 값의 데이터 종류를 저장할 메모리의 주소를 설정한다.

- 종류를 파악할 필요가 없을 시에는 NULL을 설정한다.


  • lpData

- 읽어 온 데이터를 저장할 메모리의 주소를 설정한다.

- 데이터를 읽어 올  필요가 없을경우 NULL을 설정한다.


  • lpcbData

- lpData 파라메터 사용 시 lpData에 설정하는 메모리의 크기를 전달하며 함수 종료 시 저장 된 문자 수가 설정된다.

- lpData를 NULL로 설정 했을시 이 파라메터 또한 NULL을 설정한다.


Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고 더 이상 열거 가능한 하위 키가 없을 시에는 ERROR_NO_MORE_ITEMS(259), 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.


Header : Winreg.h(include Windows.h)


DLL : Advapi32.dll


'Win32 API' 카테고리의 다른 글

RegGetValue  (0) 2015.03.25
RegSetValueEx  (0) 2015.03.19
RegDeleteValue  (0) 2015.03.18
RegDeleteKeyEx  (0) 2015.03.18
RegEnumKeyEx  (0) 2015.03.17

RegDeleteValue

2015. 3. 18. 16:57

지정한 레지스트리 키 안의 값을 삭제한다.

* 값의 이름은 대/소 문자를 구분하지 않는다. 


- 출처 : MSDN


  • hKey

- 삭제 하려는 값이 들어있는 키에 접근하기 위한 핸들을 설정한다.

- 키는 KEY_SET_VALUE 접근 권한으로 열려 있어야 한다. 


  • lpValueName

- 삭제 하려는 값의 이름을 설정한다.

- 이 파라메터의 값이 NULL 또는 빈 문자열인 경우, RegSetValue 함수로 설정 한 값이 삭제된다.


Return value :  성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.


Header : Winreg.h(include Windows.h)


DLL : Advapi32.dll


'Win32 API' 카테고리의 다른 글

RegSetValueEx  (0) 2015.03.19
RegEnumValue  (0) 2015.03.18
RegDeleteKeyEx  (0) 2015.03.18
RegEnumKeyEx  (0) 2015.03.17
RegDeleteKey  (0) 2015.03.17

RegDeleteKeyEx

2015. 3. 18. 16:09

지정한 하위키와 값을 삭제한다.


- 출처 : MSDN


  • hKey

- 삭제하려는 키의 상위 키에 접근 가능한 핸들을 설정한다.

- 핸들값을 루트(하이브)키로 설정하면 두 번째 파라메터에서 루트(하이브)키를 제외한 삭제하려는 키의 전체 경로를 명시해 준다.


  • lpSubKey

- 삭제하고자 하는 키의 이름을 설정한다.

- 이 값은 NULL로 설정할 수 없다.


  • samDesired

- 삭제하려는 키의 플랫폼(32bit,64bit)에 따른 접근 권한을 설정한다.

- 64bit 운영체제에서 32bit 프로그램으로 64bit 레지스트리 키를 삭제할 때는 KEY_WOW64_64KEY를 설정한다.

- 64bit 운영체제에서 64bit 프로그램으로 32bit 레지스트리 키를 삭제할 때는 KEY_WOW64_32KEY를 설정한다.


  • Reserved

- 예약된 영역으로 항상 0으로 설정한다.


Return value : 성공 시 ERROR_SUCCESS(0)을 반환하고, 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.


Header : Winreg.h(include Windows.h)


DLL : Advapi32.dll


'Win32 API' 카테고리의 다른 글

RegEnumValue  (0) 2015.03.18
RegDeleteValue  (0) 2015.03.18
RegEnumKeyEx  (0) 2015.03.17
RegDeleteKey  (0) 2015.03.17
RegFlushKey  (0) 2015.03.17

RegEnumKeyEx

2015. 3. 17. 19:11

지정된 열려있는 레지스트리 키의 하위 키를 열거한다.


- 출처 : MSDN


  • hKey

- 열려있는 레지스트리 키에 대한 핸들을 설정한다.

- 키는 KEY_ENUMERATE_SUB_KEYS 접근 권한으로 열려 있어야 한다.


  • dwIndex

- 읽어 올 하위 키의 인덱스 번호를 설정한다.(번호는 0부터 시작)


  • lpName

- 읽어 온 키의 이름을 저장 할 메모리의 주소를 설정한다.

- 루트(하이브) 키를 포함한 키의 전체 경로의 길이는 최대 255 글자이다.


  • lpcName

- lpName 파라메터에 전달되는 메모리의 크기를 저장해논 메모리의 주소를 전달한다.

- 함수 호출이 끝나면 이 파라메터가 가리키는 메모리에는 널 문자를 제외한 문자의 길이가 저장된다.


  • lpReserved

- 예약된 영역으로 항상 NULL로 설정한다.


  • lpClass

- 사용자 정의 클래스 유형을 설정한다.

- 일반적으로 NULL을 설정한다.


  • lpcClass

- lpClass 파라메터 사용 시 lpClass에 설정하는 메모리의 크기를 전달하며 함수 종료 시 실제 문자 수가 저장된다.

- lpClass를 NULL로 설정 했을시 이 파라메터 또한 NULL을 설정한다.


  • lpftLastWriteTime

- 열거하는 하위 키의 마지막 작성 시간을 저장하기 위한 FILETIME 구조체 변수의 주소를 전달한다.

- 일반적으로 NULL로 설정한다.


Return value :  성공 시 ERROR_SUCCESS(0)을 반환하고 더 이상 열거 가능한 하위 키가 없을 시에는 ERROR_NO_MORE_ITEMS(259), 실패 시 0이 아닌 Winerror.h에 정의 되어 있는 에러 코드를 반환한다.


Header : Winreg.h(include Windows.h)


DLL : Advapi32.dll


'Win32 API' 카테고리의 다른 글

RegDeleteValue  (0) 2015.03.18
RegDeleteKeyEx  (0) 2015.03.18
RegDeleteKey  (0) 2015.03.17
RegFlushKey  (0) 2015.03.17
RegCloseKey  (0) 2015.03.17

RegDeleteKey

2015. 3. 17. 19:01

지정한 하위 키와 값을 삭제한다.

* 하위 키 안에 하위 키가 있으면 삭제 되지 않는다. 삭제 하려는 하위 키 안의 모든 하위 키를 먼저 삭제한 후 호출해야 한다. 하위 키 안에 있는 모든 하위 키들을 반복적으로 삭제 하려면 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

2015. 3. 17. 18:46

열려있는 레지스트리 키의 변경된 사항을 적용한다.

*레지스트리에 대한 정보 변경 시 일정 시간 경과 후 자동 적용 되므로 이 함수를 의무적으로 호출할 필요는 없다, 레지스트리의 변경 정보를 확실히 적용 하고자 할 때 호출한다.


- 출처 : 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

2015. 3. 17. 18:36

지정한 레지스트리 키에 접근 가능한 핸들을 닫는다.


- 출처 : 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

2015. 3. 17. 18:10

레지스트리 키를 생성 또는 오픈한다.

* 키 이름은 대/소문자를 구분하지 않는다.  


- 출처 : 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

Module32Next

2015. 3. 17. 17:19

Module32First 호출 이후 스냅샷 정보에서 다음 프로세스의 정보를 읽어온다.


- 출처 : MSDN


  • hSnapshot

- CreateToolhelp32Snapshot 함수 호출의 반환 값인 스냅샷 정보의 핸들을 전달한다.


  • lpme

- 읽어온 프로세스의 정보를 저장 할 MODULEENTRY32 구조체 변수의 주소를 전달한다.


Return value : 성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환한다. 실패에 대한 자세한 정보는 GetLastError 함수를 참고한다.


Header : TlHelp32.h


DLL : Kernel32.dll



'Win32 API' 카테고리의 다른 글

RegCloseKey  (0) 2015.03.17
RegCreateKeyEx  (0) 2015.03.17
Module32First  (0) 2015.03.17
Thread32Next  (0) 2015.03.17
Thread32First  (0) 2015.03.17

Module32First

2015. 3. 17. 17:14

스냅샷 정보에서 첫 번째 모듈의 정보를 읽어온다.


- 출처 : 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

2015. 3. 17. 17:00

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

2015. 3. 17. 16:55

스냅샷 정보에서 첫 번째 스레드 정보를 읽어온다.


- 출처 : 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

2015. 3. 17. 16:21

지정한 스레드를 종료한다.


- 출처 : 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

2015. 3. 17. 16:10

함수를 호출한 스레드를 종료한다.


- 출처 : 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

2015. 3. 17. 16:05

지정한 스레드를 일시중단 시킨다.


- 출처 : 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

2015. 3. 17. 15:56

기존 스레드의 핸들을 구한다.


- 출처 : 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

+ Recent posts