CreateMailslotW 함수(winbase.h)
지정한 이름을 가진 mailslot을 만들고 mailslot 서버가 mailslot에서 작업을 수행하는 데 사용할 수 있는 핸들을 반환합니다. mailslot은 해당 메일을 만드는 컴퓨터에 로컬입니다. 지정한 이름의 mailslot이 이미 있는 경우 오류가 발생합니다.
통사론
HANDLE CreateMailslotW(
[in] LPCWSTR lpName,
[in] DWORD nMaxMessageSize,
[in] DWORD lReadTimeout,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
매개 변수
[in] lpName
mailslot의 이름입니다. 이 이름은 다음과 같은 형식이어야 합니다.
\\.\mailslot\[path]이름
이름 필드는 고유해야 합니다. 이름에는 백슬라이시로 구분된 여러 수준의 의사 디렉터리를 포함할 수 있습니다. 예를 들어 \\.\mailslot\example_mailslot_name 및 \\.\mailslot\abc\def\ghi는 모두 유효한 이름입니다.
[in] nMaxMessageSize
mailslot에 쓸 수 있는 단일 메시지의 최대 크기(바이트)입니다. 메시지가 모든 크기일 수 있도록 지정하려면 이 값을 0으로 설정합니다.
[in] lReadTimeout
시간 제한(밀리초)이 발생하기 전에 읽기 작업이 mailslot에 메시지를 쓸 때까지 대기할 수 있는 시간입니다. 다음 값에는 특별한 의미가 있습니다.
값 | 의미 |
---|---|
|
메시지가 없으면 즉시 반환합니다. (시스템은 즉각적인 반환을 오류로 처리하지 않습니다.) |
|
메시지를 영원히 기다립니다. |
이 제한 시간 값은 모든 후속 읽기 작업 및 상속된 모든 mailslot 핸들에 적용됩니다.
[in, optional] lpSecurityAttributes
SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. 구조체의 bInheritHandle 멤버는 반환된 핸들을 자식 프로세스에서 상속할 수 있는지 여부를 결정합니다.
반환 값
함수가 성공하면 반환 값은 서버 mailslot 작업에 사용하기 위해 mailslot에 대한 핸들입니다. 이 함수에서 반환된 핸들은 비동기식이거나 겹칩니다.
함수가 실패하면 반환 값이 INVALID_HANDLE_VALUE. 확장 오류 정보를 얻으려면 GetLastError호출합니다.
발언
mailslot은 다음 조건 중 하나가 충족될 때까지 존재합니다.
- 마지막으로 상속되거나 중복된 핸들은 CloseHandle 함수를 사용하여 닫힙니다.
- 마지막(상속되거나 중복된) 핸들을 소유하는 프로세스는 종료됩니다.
mailslot에 메시지를 쓰려면 프로세스에서 CreateFile 함수를 사용하여 다음 형식 중 하나를 사용하여 mailslot 이름을 지정합니다.
판 | 사용법 |
---|---|
\\.\mailslot\이름 | 로컬 mailslot에 대한 클라이언트 핸들을 검색합니다. |
\\컴퓨터 이름\mailslot\이름 | 원격 메일 슬롯에 대한 클라이언트 핸들을 검색합니다. |
\\domainname\mailslot\이름 | 지정된 도메인에서 지정된 이름을 가진 모든 mailslot에 대한 클라이언트 핸들을 검색합니다. |
\\*\mailslot\이름 | 시스템의 기본 도메인에 지정된 이름을 가진 모든 mailslot에 대한 클라이언트 핸들을 검색합니다. |
CreateFile 도메인을 지정하거나 별표 형식을 사용하여 시스템의 기본 도메인을 지정하는 경우 애플리케이션은 mailslot에 한 번에 424바이트 이상을 쓸 수 없습니다. 애플리케이션이 이 작업을 시도하면
애플리케이션은 CreateFile 사용하여 mailslot에 대한 클라이언트 핸들을 검색할 때 FILE_SHARE_READ 플래그를 지정해야 합니다.
존재하지 않는 mailslot에 액세스하기 위해 CreateFile 호출되면 ERROR_FILE_NOT_FOUND 오류 코드가 설정됩니다.
예제
예를 들어 Mailslot만들기를 참조하세요.
메모
winbase.h 헤더는 CREATEMailslot을 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
closeHandle
CreateFile
GetMailslotInfo
mailslot 함수
SetMailslotInfo
WriteFile