다음을 통해 공유


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

명명된 파이프를 사용할 수 있을 때까지 대기할 시간(밀리초)입니다. 숫자 값 외에도 다음과 같은 특수 값을 지정할 수 있습니다.

의미
NMPWAIT_NOWAIT
0x00000001
명명된 파이프를 기다리지 않습니다. 명명된 파이프를 사용할 수 없는 경우 함수는 오류를 반환합니다.
NMPWAIT_WAIT_FOREVER
0xffffffff
무기한 대기합니다.
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
CreateNamedPipe 함수 호출에 지정된 기본 제한 시간을 사용합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

서버 프로세스에서 파이프에 쓴 메시지가 nOutBufferSize보다 긴 경우 CallNamedPipeFALSE를 반환하고 GetLastError 는 ERROR_MORE_DATA 반환합니다. CallNamedPipe는 반환하기 전에 파이프에 대한 핸들을 닫기 때문에 메시지의 나머지 는 삭제됩니다.

설명

CallNamedPipe를 호출하는 것은 CreateFile(또는 CreateFile이 파이프를 즉시 열 수 없는 경우 WaitNamedPipe), TransactNamedPipeCloseHandle 함수를 호출하는 것과 같습니다. 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

참고 항목

CloseHandle

CreateFile

CreateNamedPipe

파이프 함수

파이프 개요

TransactNamedPipe

WaitNamedPipe