2012-05-17 2 views
0

현재 작업중인 시스템에 많은 프로세스가 실행 중입니다. 공유 메모리의 맥락에서 일부는 서버이고 일부는 클라이언트입니다.Windows에서 공유 메모리를 생성 한 프로세스를 확인하십시오.

그들은 CreateFileMappingMapViewOfFile을 통해 공유 메모리를 만들고 액세스합니다.

최근에 클라이언트 중 하나에서 구조가 변경되어 클라이언트가 서버 프로세스에서 생성 한 것보다 큰 공유 메모리 영역을 매핑하려고했습니다. 그 결과 액세스가 거부됩니다.

제 문제는, 어떤 창작 과정이 처음에 메모리를 생성했는지 전혀 알지 못합니다. 어떤 서버 프로그램을 다시 컴파일해야하는지 결정하기 위해 공유 메모리에 대한 메타 정보에 액세스하는 방법이 있습니까?

확인하려면 오류 코드 5와 함께 실패한 MapViewOfFile입니다. 액세스가 거부되었습니다.

답변

0

동적 (CreateFileMapping ... 시나리오 사용)과 정적 (PE 섹션 특성에서 선언 된 메모리 매핑)의 두 가지 유형의 공유 메모리가 있습니다. 파일 및 프로세스 수준에서 공유 메모리 특성을 가진 PE 섹션의 존재 여부를 테스트 할 수 있습니다. 다른 측면에서

, MapViewOfFile이 (메모리의 오프셋 (offset) 예를 들어, 자격 증명, ....)

+0

는 HTTP를 살펴 매핑 된 메모리의 다른 크기 이외의 수 있습니다 실패한 이유 : // 유래 .com/questions/10622750/where-to-find-if-an-address-of-the-code-or-data-sections 섹션 – mox

관련 문제