관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

OpenMutex(A) 본문

API 관련/Win32 API 함수

OpenMutex(A)

님투 2007. 11. 8. 23:10
반응형

OpenMutex(A)

기존의 이름 뮤텍스 오브젝트를 오픈하고, 그 핸들을 취득합니다.

HANDLE OpenMutexA(
    DWORD  fdwAccess, // 오브젝트에 대한 액세스 요구
    BOOL   fbInherit, // 계승 가능하게 할까의 플래그
    PCTSTR pszName    // 뮤텍스 오브젝트의 이름
);

KERNEL32.DLL

인수

fdwAccess

오브젝트에 대한 액세스 요구를 지정합니다.이하의 값을 지정합니다.

0x00100000 (SYNCHRONIZE) Windows NT/2000/XP: WaitForSingleObject 등의 대기 함수나 ReleaseMutex 함수로의 뮤텍스 핸들의 사용을 요구합니다.
0x001F0001 (MUTEX_ALL_ACCESS) 뮤텍스 오브젝트에 대해서 가능한 모든 액세스를 요구합니다.
fbInherit

호출 프로세스에 의해서 작성된 child process에 오브젝트를 계승시킬지를 지정합니다. 1 (TRUE) (을)를 지정하면, 핸들을 계승합니다. 0 (FALSE) (을)를 지정하면, 핸들을 계승하지 않습니다

pszName

뮤텍스 오브젝트의 이름을 나타내는 문자열의 주소를 지정합니다.대문자·소문자가 구별됩니다.

터미널 서비스: 터미널 서버에서는, 글로벌 또는 세션의 네임 스페이스(이름 공간)에서 명시적으로 뮤텍스 오브젝트를 관리시키기 위해서, "Global\" 또는 "Local\" 의 프레픽스를 붙일 수 있습니다.나머지의 이름은, backslash(일본어 환경에서는 엔기호) 「 \ 」이외의 모든 문자를 사용할 수 있습니다.

Windows NT/2000/XP: 고속의 유저 변환은 터미널 서비스 세션을 사용해 행해집니다.최초의 유저에서는 세션 0 하지만, 다음의 유저에서는 세션 1 하지만, 과 같이 사용됩니다.어플리케이션이 복수의 유저를 서포트할 수 있도록 하려면 , 커넬 오브젝트의 이름은, 터미널 서비스의 가이드 라인에 따라서 않으면 안됩니다.

Windows 2000: 터미널 서비스가 실행되어 있지 않은 경우에는, "Global\" 및 "Local\" 의 프레픽스는 무시됩니다.나머지의 이름은, backslash 「 \ 」이외의 모든 문자를 사용할 수 있습니다.

Windows NT 4.0 이전: backslash 「 \ 」이외의 모든 문자를 사용할 수 있습니다.

Windows 95/98/Me: backslash 「 \ 」이외의 모든 문자를 사용할 수 있습니다.공문자열 "" 도, 오브젝트의 이름으로서 유효합니다.

반환값

성공하면, 뮤텍스 오브젝트의 핸들이 돌아갑니다.

실패하면 0 (NULL) 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.

해설

OpenMutex 함수는, 같은 뮤텍스 오브젝트를 복수의 프로세스로 오픈할 수 있도록(듯이) 합니다.이 함수는, 지정된 이름의 뮤텍스 오브젝트가 벌써 CreateMutex 함수로 작성되고 있었을 경우에게만 성공합니다.

핸들을 클로우즈 하려면 , CloseHandle 함수를 사용합니다.프로세스의 종료시에는, 시스템이 자동적으로 핸들을 클로우즈 합니다.마지막 핸들이 클로우즈 되면, 뮤텍스 오브젝트는 파기됩니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

PathAddExtension(A)  (0) 2007.11.08
PathAddBackslash(A)  (0) 2007.11.08
MultiByteToWideChar  (0) 2007.11.08
MsgWaitForMultipleObjects  (1) 2007.11.08
MoveWindow  (0) 2007.11.08
Comments