권한 상승없이 실행되는 Windows 응용 프로그램이 있습니다. 실행중인 모든 응용 프로그램 인스턴스간에 메모리 배열을 공유 할 파일 매핑 개체를 만들어야합니다. 일부 인스턴스는 다른 로그온 세션에서 실행될 수 있습니다.사용자 모드 프로세스에서 전역 파일 매핑 개체를 만들지 못했습니다.
나는 CreateFileMapping API를 호출하여 만듭니다. Global\sharedname
과 같은 보안 설명자를 사용하고 everyone
에 대한 액세스가 all
이지만 해당 API는 오류 코드 5 또는 ERROR_ACCESS_DENIED
으로 실패합니다.
그런 다음 문서를 읽기 시작하고 내 프로세스에 SeCreateGlobalPrivilege
권한이 필요하다는 것을 알았습니다. 하지만 그 특권을 할당하려고하면 AdjustTokenPrivileges은 오류 코드 ERROR_NOT_ALL_ASSIGNED
을 반환하고 나는 막혔습니다. ...
그래서 여기 트릭은 무엇입니까, 그 freakin 'MS는 어떻게 우리가 그것을 원하니 ???
추신. 이전에 동일한 all access for everyone
보안 설명자와 Global\sharedmutex
이름을 사용하여 전역 적으로 이름이 지정된 뮤텍스 (공유 메모리에 대한 동기화 된 액세스 용)를 만들 수 있습니다.
내가 알 수있는 바로는 "GLOBAL \ sharedname"은 모든 세션에서 액세스 할 수있는 개체를 만드는 것입니다. 여러 세션에서 액세스하거나 여러 프로세스에서 액세스해야합니까? –