CallNamedPipeA 함수(winbase.h)
메시지 형식 파이프에 연결하고 파이프의 instance 사용할 수 없는 경우 대기하고 파이프에 쓰고 파이프에서 읽은 다음 파이프를 닫습니다.
구문
BOOL CallNamedPipeA(
[in] LPCSTR lpNamedPipeName,
[in] LPVOID lpInBuffer,
[in] DWORD nInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD nOutBufferSize,
[out] LPDWORD lpBytesRead,
[in] DWORD nTimeOut
);
매개 변수
[in] lpNamedPipeName
파이프 이름입니다.
[in] lpInBuffer
파이프에 쓸 데이터입니다.
[in] nInBufferSize
쓰기 버퍼의 크기(바이트)입니다.
[out] lpOutBuffer
파이프에서 읽은 데이터를 수신하는 버퍼에 대한 포인터입니다.
[in] nOutBufferSize
읽기 버퍼의 크기(바이트)입니다.
[out] lpBytesRead
파이프에서 읽은 바이트 수를 수신하는 변수에 대한 포인터입니다.
[in] nTimeOut
명명된 파이프를 사용할 수 있을 때까지 대기할 시간(밀리초)입니다. 숫자 값 외에도 다음과 같은 특수 값을 지정할 수 있습니다.
값 | 의미 |
---|---|
|
명명된 파이프를 기다리지 않습니다. 명명된 파이프를 사용할 수 없는 경우 함수는 오류를 반환합니다. |
|
무기한 대기합니다. |
|
CreateNamedPipe 함수 호출에 지정된 기본 제한 시간을 사용합니다. |
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
서버 프로세스에서 파이프에 쓴 메시지가 nOutBufferSize보다 긴 경우 CallNamedPipe 는 FALSE를 반환하고 GetLastError 는 ERROR_MORE_DATA 반환합니다. CallNamedPipe는 반환하기 전에 파이프에 대한 핸들을 닫기 때문에 메시지의 나머지 는 삭제됩니다.
설명
CallNamedPipe를 호출하는 것은 CreateFile(또는 CreateFile이 파이프를 즉시 열 수 없는 경우 WaitNamedPipe), TransactNamedPipe 및 CloseHandle 함수를 호출하는 것과 같습니다. CreateFile 은 GENERIC_READ 액세스 플래그를 사용하여 호출됩니다. | GENERIC_WRITE 및 상속 핸들 플래그 FALSE입니다.
파이프가 바이트 형식 파이프인 경우 CallNamedPipe가 실패합니다.
Windows 10 버전 1709: 파이프는 앱 컨테이너 내에서만 지원됩니다. 즉, 한 UWP 프로세스에서 동일한 앱의 일부인 다른 UWP 프로세스까지 지원됩니다. 또한 명명된 파이프는 파이프 이름에 대한 구문을 \\.\pipe\LOCAL\
사용해야 합니다.
예제
예제는 명명된 파이프의 트랜잭션을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |