Platform/IPC

규격

jjryu 2009. 2. 4. 15:34
실행인자

환경변수

파일
가장 단순
DDE
Atom

클립보드
잘라내서-붙여넣기
Drag & Drop // 끌어서-놓기

윈도우 메시지 // 사용자 정의 메시지
c.f. WaitForInputIdle()

WM_COPYDATA
정수 하나와 포인터 하나를 보낼 수 있다.
c.f. WaitForInputIdle()
CloseHandle()
SetHandleInformation()
GetHandleInformation()

공유 메모리

익명 파이프
CreatePipe()
CloseHandle()
SetHandleInformation()
HANDLE_FLAG_INHERIT
WriteFile()
명명된 파이프
The named pipe instance is a global resource

CreateNamedPipe()
PIPE_ACCESS_DUPLEX

PIPE_TYPE_BYTE
CloseHandle()
ConnectNamedPipe() // blocking, listen? // indicating that there is an available named pipe instance
ERROR_PIPE_CONNECTED
DisconnectNamedPipe() // for connection with another client
ReadFile()
WriteFile()

CreateFile()
ERROR_PIPE_BUSY

OPEN_EXISTING
WaitNamedPipe() // blocking??, connect?
ConnectNamedPipe()

NMPWAIT_WAIT_FOREVER

Nonetheless, the client's CreateFile call could fail if some other client opens the named pipe instance or if the server closes the instance's handle.
CloseHandle()
allowing another client to connect on the same named pipe instance
ReadFile()
WriteFile()
FlushFileBuffers()

IO Completion Ports

Non-Blocking Reads and Writes using Overlapped IO
메일 슬롯 // be like a message queue
CreateMailslot()
MAILSLOT_WAIT_FOREVER
CloseHandle()
GetMailslotInfo() // polling
can retrieve the size (in bytes) of the next record (if any)
ReadFile() // blocking
CreateFile()
CloseHandle()
WriteFile()
소켓

RPC

COM/DCOM


참조 사이트: