윈도우즈 api
- WSACleanup 2015.04.13
- WSAStartup 2015.04.13
- WaitForMultipleObjects 2015.04.10
- WaitForSingleObject 2015.04.10
- inet_ntoa 2015.04.10
- inet_addr 2015.04.10
- ntohl 2015.04.10
- ntohs 2015.04.10
- htonl 2015.04.10
- htons 2015.04.10
- recvfrom 2015.04.10
- sendto 2015.04.10
- recv 2015.04.09
- send 2015.04.09
- closesocket 2015.03.31
- connect 2015.03.31
- accept 2015.03.31
- listen 2015.03.31
- bind 2015.03.31
- socket 2015.03.31
- LeaveCriticalSection 2015.03.25
- EnterCriticalSection 2015.03.25
- InitializeCriticalSectionAndSpinCount 2015.03.25
- InitializeCriticalSection 2015.03.25
- RegGetValue 2015.03.25
- RegSetValueEx 2015.03.19
- RegEnumValue 2015.03.18
- RegDeleteValue 2015.03.18
- RegDeleteKeyEx 2015.03.18
- RegEnumKeyEx 2015.03.17
WSACleanup
프로그램에서 윈속 관련 함수 사용을 종료할 때 호출한다.
* 프로그램에서 더이상 ws2_32.dll 라이브러리의 기능을 사용하지 않을 때 호출한다.
- 출처 : MSDN
파라메터 없음
Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError 함수를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
'Win32 API' 카테고리의 다른 글
WSAStartup (0) | 2015.04.13 |
---|---|
WaitForMultipleObjects (0) | 2015.04.10 |
WaitForSingleObject (0) | 2015.04.10 |
inet_ntoa (0) | 2015.04.10 |
inet_addr (0) | 2015.04.10 |
WSAStartup
프로그램에서 윈속(Winsock)관련 함수들을 사용하기 전에 호출해야 하는 윈속 초기화 함수이다.
- 출처 : MSDN
wVersionRequested
- 윈속 버전을 설정한다.
- 상위 바이트에 Minor, 하위 바이트에 Major 버전을 설정한다.
- 매크로 함수 MAKEWORD(하위 바이트값, 상위 바이트값)에 값을 넣어 설정한다.
lpWSAData
- WSADATA 구조체 변수의 주소를 설정한다.
- 운영체제는 함수 호출 후 초기화 결과의 세부 사항을 이 구조체 변수에 저장한다.
Return value : 성공 시 0을 반환하며, 실패 시 아래의 오류 코드 중 하나를 반환한다.
- WSASYSNOTREADY : 네크워크 서브 시스템이 네트워크에 접속을 준비할 수 없음
- WSAVERNOTSUPPORTED : 요구한 윈속의 버전이 지원 안됨
- WSAEINPROGRESS : 블로킹 윈도우 소켓이 실행 중임
- WSAEPROCLIM : 동시에 실행 가능한 최대 윈속수에 도달했음
- WSAEFAULT : lpWSAData가 올바르지 않음
Header : Winsock2.h
DLL : ws2_32.dll
'Win32 API' 카테고리의 다른 글
WSACleanup (0) | 2015.04.13 |
---|---|
WaitForMultipleObjects (0) | 2015.04.10 |
WaitForSingleObject (0) | 2015.04.10 |
inet_ntoa (0) | 2015.04.10 |
inet_addr (0) | 2015.04.10 |
WaitForMultipleObjects
지정된 하나 또는 모든 객체의 시간 제한 간격이 경과 할때까지 또는 신호 상태로 전활될 때까지 대기한다.
* 이 함수는 다음 객체들에 대해 대기 가능 하다
- Change notification
- Console input
- Event
- Memory resource notification
- Mutex
- Process
- Semaphore
- Thread
- Waitable timer
- 출처 : MSDN
nCount
- 대기 하려는 객체의 수를 설정한다.
- 최대 객체 수는 MAXIMUM_WAIT_OBJECTS(64)이다.
- 이 파라메터 값은 0이 될 수 없다.
lpHandles
- 대기 하려는 객체들에 대한 핸들을 담고 있는 배열의 시작 주소를 설정한다.
- 핸들은 SYNCHRONIZE 접근 권한이 설정되어 있어야 한다.
bWaitAll
- TRUE 설정 시 대기하는 모든 객체의 종료 또는 시그널 상태로 전활될 때 반환된다.
- FALSE 설정 시 대기하는 객체들 중 어느 하나의 객체 종료 또는 시그널 상태로 전환될 때 반환된다.
dwMilliseconds
- 밀리 초 단위의 대기 시간 간격을 설정한다.
- 0을 설정 시 바로 반환되며, 0이 아닌 시간을 입력 했을 시 지정한 시간만큼을 대기한다.
- 값을 INFINITE로 설정 시 지정 객체의 종료 또는 시그널 상태로 전환될 때 반환된다.
Return value : 성공 시 WAIT_ABANDONED_0~nCount-1(0x00000080L+nCount-1), WAIT_OBJECT_0~nCount-1(0x00000000L+nCount-1), WAIT_TIMEOUT(0x00000102L)를 반환하고, 실패 시 WAIT_FAILED(0xFFFFFFFF)를 반환한다.
- WAIT_ABANDONED : 뮤텍스 객체 사용 시 발생
- WAIT_OBJECT_0 : 대기 하고 있는 객체의 종료 또는 시그널 상태로 전환 시 발생
- WAIT_TIMEOUT : 대기 시간 초과 시 발생
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
WSACleanup (0) | 2015.04.13 |
---|---|
WSAStartup (0) | 2015.04.13 |
WaitForSingleObject (0) | 2015.04.10 |
inet_ntoa (0) | 2015.04.10 |
inet_addr (0) | 2015.04.10 |
WaitForSingleObject
지정된 객체의 시간 제한 간격이 경과할때까지 또는 신호 상태로 전환될 때까지 대기한다.
* 이 함수는 다음 객체들에 대해 대기 가능 하다
- Change notification
- Console input
- Event
- Memory resource notification
- Mutex
- Process
- Semaphore
- Thread
- Waitable timer
- 출처 : MSDN
hHandle
- 대기 하려는 객체에 대한 핸들을 설정한다.
- 핸들은 SYNCHRONIZE 접근 권한이 설정되어 있어야 한다.
dwMilliseconds
- 밀리 초 단위의 대기 시간 간격을 설정한다.
- 0을 설정 시 바로 반환되며, 0이 아닌 시간을 입력 했을 시 지정한 시간만큼을 대기한다.
- 값을 INFINITE로 설정 시 지정 객체의 종료 또는 시그널 상태로 전환될 때 반환된다.
Return value : 성공 시 WAIT_ABANDONED(0x00000080L), WAIT_OBJECT_0(0x00000000L), WAIT_TIMEOUT(0x00000102L) 값 중 하나가 반환되고, 실패 시 WAIT_FAILED(0xFFFFFFFF)가 반환된다.
- WAIT_ABANDONED : 뮤텍스 객체 사용 시 발생
- WAIT_OBJECT_0 : 대기 하고 있는 객체의 종료 또는 시그널 상태로 전환 시 발생
- WAIT_TIMEOUT : 대기 시간 초과 시 발생
Header : WinBase.h(include Windows.h)
DLL : Kernel32.dll
'Win32 API' 카테고리의 다른 글
WSAStartup (0) | 2015.04.13 |
---|---|
WaitForMultipleObjects (0) | 2015.04.10 |
inet_ntoa (0) | 2015.04.10 |
inet_addr (0) | 2015.04.10 |
ntohl (0) | 2015.04.10 |
inet_ntoa
TCP/IP 네트워크 바이트 오더로 구성된 u_long 타입의 IPv4 주소를 수와 점으로 구성된 문자열 타입의 값으로 변환하여 반환한다.
- 출처 : MSDN
in
- 변환 할 in_addr 구조체 변수로 구성된 IPv4 값을 설정한다.
Return value : 성공 시 변환 된 문자열 타입의 IPv4 주소가 저장된 메모리의 주소를 반환하고, 실패 시 NULL을 반환한다.
Header : WinSock2.h
DLL : ws2_32.dll
'Win32 API' 카테고리의 다른 글
WaitForMultipleObjects (0) | 2015.04.10 |
---|---|
WaitForSingleObject (0) | 2015.04.10 |
inet_addr (0) | 2015.04.10 |
ntohl (0) | 2015.04.10 |
ntohs (0) | 2015.04.10 |
inet_addr
수와 점으로 구성된 문자열 타입의 IPv4 주소 값(예: "192.168.0.100")을 TCP/IP 네트워크 바이트 오더(빅 엔디안) 형태의 u_long 값으로 변환하여 반환한다.
- 출처 : MSDN
cp
- 변환 할 수와 점으로 구성된 문자열 타입의 IPv4 주소값을 설정한다.
Return value : 성공 시 변환된 u_long 값을 반환하고, 실패 시 INADDR_NONE(-1)을 반환한다.
Header : Winsock2.h
DLL : ws2_32.dll
ntohl
u_long 타입의 TCP/IP 네트워크 바이트 오더 방식(빅 엔디안)값을 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안)값으로 변환하여 반환한다.
* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다.
빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x12 | 0x34 | 0x56 (높은주소)
리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x56 | 0x34 | 0x12 (높은주소)
- 출처 : MSDN
netlong
- 변환 하고자 하는 TCP/IP 네트워크 바이트 순서로 된 32비트(4바이트) 숫자를 설정한다.
Return value : 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안) 형태로 변환 된 값을 반환한다.
Header : Winsock2.h
DLL : ws2_32.dll
ntohs
u_short 타입의 TCP/IP 네트워크 바이트 오더 방식(빅 엔디안)값을 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안)값으로 변환하여 반환한다.
* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다.
빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x12 | 0x34 | 0x56 (높은주소)
리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x56 | 0x34 | 0x12 (높은주소)
- 출처 : MSDN
netshort
- 변환 하고자 하는 TCP/IP 네트워크 바이트 순서로 된 16비트(2바이트) 숫자를 설정한다.
Return value : 호스트 바이트 오더(인텔 프로세서일 경우 리틀 엔디안) 형태로 변환 된 값을 반환한다.
Header : Winsock2.h
DLL : ws2_32.dll
htonl
u_long 타입의 호스트(로컬 시스템) 바이트 오더 데이터를 TCP/IP 네트워크 바이트 오더 방식인 빅 엔디안 값으로 변환하여 반환한다.
* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다.
빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x12 | 0x34 | 0x56 (높은주소)
리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x56 | 0x34 | 0x12 (높은주소)
- 출처 : MSDN
hostlong
- 변환 하고자 하는 호스트(로컬 시스템) 바이트 순서로 된 32비트(4바이트) 숫자를 설정한다.
Return value : TCP/IP 네트워크 바이트 오더(빅 엔디안) 형태로 변환 된 값을 반환한다.
Header : Winsock2.h
DLL : ws2_32.dll
htons
u_short 타입의 호스트(로컬 시스템) 바이트 오더 데이터를 TCP/IP 네트워크 바이트 오더 방식인 빅 엔디안 값으로 변환하여 반환한다.
* 바이트 오더란? 1개의 데이터가 1바이트 이상의 값을 가지고 있을 때 저장 되는 순서(바이트 단위)를 말한다.
빅 엔디안 : 낮은 주소에서 높은 주소로 저장 되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x12 | 0x34 | 0x56 (높은주소)
리틀 엔디안 : 높은 주소에서 낮은 주소로 저장되는 형태의 바이트 오더
예) 0x123456(3bytes) --> (낮은주소) 0x56 | 0x34 | 0x12 (높은주소)
- 출처 : MSDN
hostshort
- 변환 하고자 하는 호스트(로컬 시스템) 바이트 순서로 된 16비트(2바이트) 숫자를 설정한다.
Return value : TCP/IP 네트워크 바이트 오더(빅 엔디안) 형태로 변환 된 값을 반환한다.
Header : Winsock2.h
DLL : ws2_32.dll
recvfrom
지정한 소켓으로 들어온 데이터를 수신한다, 또한 데이터를 송신한 상대방의 주소 정보를 저장한다.
* UDP 프로토콜을 이용한 통신에서 상대방으로부터 데이터를 받을 때 사용한다.
- 출처 : MSDN
s
- 데이터를 수신할 소켓의 식별자를 설정한다.
buf
- 수신한 데이터를 저장 할 메모리의 주소를 설정한다.
len
- buf 파라메터가 가리키는 수신 데이터를 저장 할 메모리의 크기를 설정한다.
flags
- 수신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.
- 옵션 사용 시 OR 연산자를 이용하여 하나 이상의 옵션을 지정할 수 있다.
from
- 데이터를 송신한 상대방의 주소 정보를 저장할 SOCKADDR_IN 구조체 변수의 주소를 전달한다.
- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.
fromlen
- from 파라메터에 전달되는 데이터의 길이를 저장한 메모리의 주소를 설정한다.
- 함수 호출 후 연결된 클라이언트의 주소 정보 크기가 저장 된다.
Return value : 성공 시 수신 된 데이터 바이트 수를 반환하고, 소켓 정상 종료 시 0을 반환한다. 실패 시 SOCKET_ERROR(-1)을 반환하고, 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
sendto
지정한 목적지로 데이터를 송신한다.
* UDP 프로토콜을 이용한 통신에서 상대방에게 데이터를 보낼 때 사용한다.
- 출처 : MSDN
s
- 데이터 송신에 사용할 소켓의 식별자를 설정한다.
buf
- 송신 하고자 하는 데이터가 들어있는 메모리의 주소를 설정한다.
len
- buf 파라메터가 가리키는 송신 데이터의 길이를 설정한다.
flags
- 송신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.
- 옵셥 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.
to
- 목적지 주소 정보가 들어있는 SOCKADDR_IN 구조체 변수의 주소를 설정한다.
- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN에 정보를 입력한 후 강제 형변환하여 인자를 전달한다.
tolen
- to 파라메터에 전달되는 메모리의 크기값을 설정한다.
Return value : 성공 시 송신 된 데이터 바이트 수를 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환하다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
recv
상대방과 연결되어 있는 소켓을 이용하여 상대방으로부터 데이터를 수신한다.
* TCP 프로토콜을 이용한 통신에서 상대방으로부터 데이터를 받을 때 사용한다.
- 출처 : MSDN
s
- 상대방과 연결된 소켓의 식별자를 설정한다.
buf
- 수신한 데이터를 저장 할 메모리의 주소를 설정한다.
len
- buf 파라메터가 가리키는 수신 데이터를 저장 할 메모리의 크기를 설정한다.
flags
- 수신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.
- 옵션 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.
Return value : 성공 시 수신 된 데이터 바이트 수를 반환하고, 소켓 정상 종료 시 0을 반환한다. 실패 시 SOCKET_ERROR(-1)을 반환하고, 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
send
상대방과 연결되어 있는 소켓을 이용하여 상대방에게 데이터를 송신한다.
* TCP 프로토콜을 이용한 통신에서 상대방에게 데이터를 보낼 때 사용한다.
- 출처 : MSDN
s
- 상대방과 연결된 소켓의 식별자를 설정한다.
buf
- 송신 하고자 하는 데이터가 들어있는 메모리의 주소를 설정한다.
len
- buf 파라메터가 가리키는 송신 데이터의 길이를 설정한다.
flags
- 송신 시 사용할 옵션 값이다, 옵션을 사용하지 않을 경우 0을 설정한다.
- 옵션 사용 시 OR연산자를 이용하여 하나 이상의 옵션을 사용할 수 있다.
Return value : 성공 시 송신 된 데이터 바이트 수를 반환하고, 실패 시 SOCKET_ERROR(-1)을 반환하다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
closesocket
지정한 소켓을 종료한다.
- 출처 : MSDN
s
- 종료할 소켓의 식별자를 설정한다.
Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
connect
서버의 리스닝 소켓으로 요청을 보내 서버와 통신을 위한 연결을 수립한다.
- 출처 : 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
accept
리스닝 소켓으로 들어오는 클라이언트의 요청을 허용하여 클라이언트와 통신을 위한 새로운 소켓을 생성한다.
- 출처 : MSDN
s
- 클라이언트의 요청이 들어오는 리스닝 소켓의 식별자를 설정한다.
addr
- 요청한 클라이언트의 주소 정보를 저장할 SOCKADDR_IN 구조체 변수의 주소를 전달한다.
- 파라메터는 sockaddr의 주소를 전달해야 하지만 IPv4를 사용하는 경우 전용 구조체인 SOCKADDR_IN를 사용 하므로 강제 형변환하여 인자를 전달한다.
addrlen
- 두 번째 addr 파라메터에 전달되는 데이터의 길이를 저장한 메모리의 주소를 설정한다.
- 함수 호출 후 연결된 클라이언트의 주소 정보 크기가 저장 된다.
Return value : 성공 시 클라이언트와 통신을 위한 새로운 소켓이 생성되어 클라이언트와 연결이 되고 새로 생성된 소켓의 식별자가 반환된다, 실패 시 INVALID_SOCKET이 반환된다. 실패에 대한 자세한 정보는 WSAGetLastError 함수를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
listen
지정한 소켓을 클라이언트의 요청을 수신할 수 있는 리스닝 상태로 만들어 준다.
- 출처 : MSDN
s
- 리스닝 상태로 전환할 소켓의 식별자를 설정한다.
backlog
- 연결 보류중인 클라이언트의 요청을 위한 대기열 큐의 최대 길이를 설정한다.
- 일반적으로 운영체제에서 제공하는 최대 크기 값인 SOMAXCONN을 설정한다.
Return value : 성공 시 0을 반환하고, 실패 시 SOCKET_ERROR(-1)를 반환한다. 실패에 대한 자세한 정보는 WSAGetLastError를 참고한다.
Header : Winsock2.h
DLL : ws2_32.dll
bind
소켓에 로컬 주소를 연결한다.
- 출처 : 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
소켓을 생성한다.
- 출처 : 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
지정한 크리티컬 섹션 오브젝트의 소유권을 해제한다.
- 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
지정한 크리티컬 섹션 오브젝트의 소유권을 기다린다. 함수를 호출한 스레드가 소유권을 획득할 때까지 함수는 반환되지 않는다.
- 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 |
InitializeCriticalSectionAndSpinCount
크리티컬 섹션 오브젝트를 초기화하고 스핀 카운트를 설정한다.
* 스핀 카운트란 크리티컬 섹션 영역 접근 시 해당 자원을 획득할 때까지 지정한 카운트 만큼의 루프를 돌며 대기하기 위한 설정 값을 말한다.
- 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
크리티컬 섹션 오브젝트를 초기화 한다.
- 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
지정한 레지스트리 값의 타입과 데이터를 읽어온다.
- 출처 : 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
지정된 열려있는 레지스트리 키에 값의 데이터와 타입을 설정한다.
- 출처 : 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
- 출처 : 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
지정한 레지스트리 키 안의 값을 삭제한다.
* 값의 이름은 대/소 문자를 구분하지 않는다.
- 출처 : 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
지정한 하위키와 값을 삭제한다.
- 출처 : 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
지정된 열려있는 레지스트리 키의 하위 키를 열거한다.
- 출처 : 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 |