windows programming 코딩 질문

windows programming 메일 슬롯 공부를 하고 있는데 커널 오브젝트 usage count를 확인할 방법이 없을까요?
상태가 non-signaled로 바뀌는 걸 확인하는 WaitForSingleObject 함수가 있긴 한데 블로킹 방식의 함수라서 제가 원하는 방법은 아닙니다.
만들고자 하는 프로그램은 총 3개인데
1) 메일 슬롯을 만드는 프로그램
2) 메일 슬롯에 사용자로부터 입력된 문자열을 전송하는 sender 프로그램
3) 2)에서 생성된 자식 sender 프로그램 ( 2)에서 인자로 전달받은 메일 슬롯 핸들값이 상속되었는지 확인하는 코드가 있기 때문에 2)와는 약간 다릅니다.)
사실 1)에서는 메일 슬롯을 핸들값 usage count가 0이 될 때 딱 종료시키고 싶습니다.
자신이 생성한 메일 슬롯 리소스를 참조하는 프로세스가 몇 개인지 모르는 상황이기 때문에 참조 횟수가 0인 경우에 반환하는 것이 가장 바람직하다고 생각해서..
여기서 생각해볼 방법은 WaitForSingleObject의 두 번째 인자값이 time-out을 설정하는 값이라서 0 넣는 것이었습니다.
제 예상으로는 상태만 확인 후 바로 반환할 것이라 생각했는데요. 그럼 아직 signaled 상태여서 WAIT_TIMEOUT을 반환할 것이라 기대했는데 왠걸 0이 나옵니다.
이때 심지어 2)에서 메일 슬롯을 사용하고 있는 상황이었는데 말이죠..
뭐가 잘못된 건지 모르겠지만 일단 '1)의 프로그램에서 usage count를 확인하는 방법'에 대해 알고 싶습니다.
좀만 더 욕심을 부린다면 왜 저런 값을 받게 되었는지 알 수 있을까요? ㅜㅜ 답변 부탁드립니다.
참고해보세요.
- 메일슬롯 버퍼에도 제한이 있습니다.
성능은 상당히 좋은 편입니다.
- 단방향 전송이 가능합니다.
- 보안 SAL 을 적용하실 수 있습니다.
- 이런 함수가 보이네요.
GetProcessIoCounters()
GetProcessHandleCount()
- STL 의 list 나 queue 등을 공유해서. 사용하는 방법도 상당히 빠릅니다.
배열 > CAtlMap > STL Port > stl 속도
- 윈도우 네트워크 드라이브를 연결해서. 사용하는 방법도 편하고. 좋습니다.
접속 해제가 되는 문제가 있기도 합니다.
- GPGPU AMP PPL 등을 함께 사용하시면. 굉장한 속도 향상이 있다고 합니다.
http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8873&page=1
제가 사용하던. MSDN 메일슬롯 예제가 없어졌네요. ㅇ_ㅇ;;
책 예제 소스 보시면 될겁니다.
윈도우 XP 에서는 MailSlot 사용시. 윈도우 서비스 옵션을 변경해줘야 적용이 되기도 하는 어려움이 있습니다.
방금 찾아본 주소 모두 적어봅니다.
Using Mailslots for Interprocess Communication
https://www.codeproject.com/Articles/8527/Using-Mailslots-for-Interprocess-Communication
Interprocess communication using Mailslots
https://autohotkey.com/board/topic/55473-interprocess-communication-using-mailslots/
Creating a Mailslot
https://docs.microsoft.com/ko-kr/windows/desktop/ipc/creating-a-mailslot
프로세스간 통신(IPC) - 메일 슬롯(MailSlot)
http://dakuo.tistory.com/86
커널 오브젝트 그리고 Usage Count
http://robodream.tistory.com/194
[뇌자극 필기] Chapter 7. 프로세스간 통신 (IPC - Inter Process Communcation)
http://blog.naver.com/PostView.nhn?blogId=ruinarts&logNo=220625940423
Chapter 7. 프로세스간 통신(IPC) 1
http://christin2.tistory.com/entry/Chapter-7-프로세스간-통신IPC-1
커널 오브젝트와 Usage Count 란?
http://holyhacker.tistory.com/54
윈도우즈 시스템 프로그래밍 [6] - 커널 오브젝트와 오브젝트 핸들
http://carpedm20.blogspot.com/2012/08/6.html
Windows :: 윈도우 핸들찾기, pid를 이용하여 핸들 가져오기
http://sosal.kr/657
GetProcessHandleCount function
https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getprocesshandlecount
Process Security and Access Rights
https://docs.microsoft.com/ko-kr/windows/desktop/ProcThread/process-security-and-access-rights
C# 프로세스 목록 알아오기
http://darkangelus.tistory.com/45
Diving into win32 Processes
https://aljensencprogramming.wordpress.com/tag/getcurrentprocess/
프로세스간 통신(IPC) - 메일 슬롯(MailSlot)
http://dakuo.tistory.com/m/86
Windows :: IPC MailSlot을 이용한 프로세스간 통신
http://sosal.kr/631
프로세스간 통신(IPC) - 메일 슬롯(MailSlot)출처: http://dakuo.tistory.com/86 [hacker dakuo]
http://dakuo.tistory.com/86
http://dakuo.tistory.com/89
CreateMailslot
https://www.codeproject.com/search.aspx?q=CreateMailslot&sbo=kw&x=12&y=5
network handle
https://www.codeproject.com/search.aspx?q=network+handle&sbo=kw&x=8&y=3
network share memory
https://www.codeproject.com/search.aspx?q=network+share+memory&doctypeid=1%3b2%3b3%3b13%3b14
Windows :: IPC MailSlot을 이용한 프로세스간 통신출처: http://sosal.kr/631 [so_sal ]
http://sosal.kr/631
IPC(프로세스 간 통신) - Mail Slot
http://hypen1117.tistory.com/entry/IPC%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EA%B0%84-%ED%86%B5%EC%8B%A0-Mail-Slot
윈도우즈 시스템 프로그래밍 [7] - 프로세스간 통신 (IPC)
http://carpedm20.blogspot.kr/2012/08/7-ipc-1.html
IPC MailSlot 메일 슬롯
http://amgn.tistory.com/513
5 프로세스 기반의 다중접속 서버의 구현
https://www.youtube.com/watch?v=wwVKe55rVbM
운영체제 [11-2] 프로세스 간의 통신, 김용석, 강원대학교
https://www.youtube.com/watch?v=fTlfeRhIKrc
CreateMailslot function
https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa365147(v=vs.85).aspx
IPC - 메일 슬롯
http://bbolmin.tistory.com/93
IPC-Mailslot 함수정리
https://kldp.org/node/105128
CreateMailslot(), ReadFile(), WriteFile() C/C++ / Programming[출처] CreateMailslot(), ReadFile(), WriteFile()|작성자 Seong Jin
http://blog.naver.com/PostView.nhn?blogId=seongjin0526&logNo=220620681852&parentCategoryNo=&categoryNo=7&viewDate=&isShowPopularPosts=true&from=search
Mailslots 14 Part 2
http://www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancedmailslot14a.html
17.CreateMailSlots in IPC - Windows System Programming in C/C++
https://www.youtube.com/watch?v=MrlRuffjxlM
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS3: Concurrency 3.4. Windows APIs for Synchronization.
http://slideplayer.com/slide/8123193/
NFS(Network File System)
https://www.slideshare.net/udamale/nfsnetwork-file-system
How to Handle and IdentifyNetwork Probes
http://cecs.wright.edu/~pmateti/Courses/499/Probing/How%20to%20Handle%20Network%20Probes.htm
Monitoring Remote Systems
http://www.network-monitor.com/monitoring-remote-network-segments.php
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
참조할 사이트 감사합니다.
참조할 사이트 감사합니다.
적절한 함수를 찾아보겠습니다!
댓글 달기