GetNamedPipeHandleStateA 함수(winbase.h)
지정된 명명된 파이프에 대한 정보를 검색합니다. 반환되는 정보는 명명된 파이프의 instance 수명 동안 다를 수 있습니다.
구문
BOOL GetNamedPipeHandleStateA(
[in] HANDLE hNamedPipe,
[out, optional] LPDWORD lpState,
[out, optional] LPDWORD lpCurInstances,
[out, optional] LPDWORD lpMaxCollectionCount,
[out, optional] LPDWORD lpCollectDataTimeout,
[out, optional] LPSTR lpUserName,
[in] DWORD nMaxUserNameSize
);
매개 변수
[in] hNamedPipe
정보를 원하는 명명된 파이프에 대한 핸들입니다. 핸들에는 읽기 전용 또는 읽기/쓰기 파이프에 대한 GENERIC_READ 액세스 권한이 있거나 쓰기 전용 파이프에 대한 GENERIC_WRITE 및 FILE_READ_ATTRIBUTES 액세스 권한이 있어야 합니다.
이 매개 변수는 CreatePipe 함수에서 반환한 익명 파이프에 대한 핸들일 수도 있습니다.
[out, optional] lpState
핸들의 현재 상태를 나타내는 변수에 대한 포인터입니다. 이 정보가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다. 다음 값 중 하나 또는 둘 다를 지정할 수 있습니다.
값 | 의미 |
---|---|
|
파이프 핸들이 차단 해제 모드에 있습니다. 이 플래그를 지정하지 않으면 파이프 핸들이 차단 모드에 있습니다. |
|
파이프 핸들이 메시지 읽기 모드에 있습니다. 이 플래그를 지정하지 않으면 파이프 핸들이 바이트 읽기 모드에 있습니다. |
[out, optional] lpCurInstances
현재 파이프 인스턴스 수를 수신하는 변수에 대한 포인터입니다. 이 정보가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
[out, optional] lpMaxCollectionCount
서버로 전송하기 전에 클라이언트 컴퓨터에서 수집할 최대 바이트 수를 수신하는 변수에 대한 포인터입니다. 지정된 파이프 핸들이 명명된 파이프의 서버 끝에 있거나 클라이언트 및 서버 프로세스가 동일한 컴퓨터에 있는 경우 이 매개 변수는 NULL 이어야 합니다. 이 정보가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
[out, optional] lpCollectDataTimeout
원격 명명된 파이프가 네트워크를 통해 정보를 전송하기 전에 전달할 수 있는 최대 시간(밀리초)을 수신하는 변수에 대한 포인터입니다. 지정된 파이프 핸들이 명명된 파이프의 서버 끝에 있거나 클라이언트 및 서버 프로세스가 동일한 컴퓨터에 있는 경우 이 매개 변수는 NULL 이어야 합니다. 이 정보가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
[out, optional] lpUserName
클라이언트 애플리케이션과 연결된 사용자 이름 문자열을 수신하는 버퍼에 대한 포인터입니다. 서버는 클라이언트가 SECURITY_IMPERSONATION 액세스 권한으로 파이프를 연 경우에만 이 정보를 검색할 수 있습니다.
지정된 파이프 핸들이 명명된 파이프의 클라이언트 끝에 있는 경우 이 매개 변수는 NULL 이어야 합니다. 이 정보가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
[in] nMaxUserNameSize
tCHAR에서 lpUserName 매개 변수로 지정된 버퍼의 크기입니다. lpUserName이 NULL인 경우 이 매개 변수는 무시됩니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
GetNamedPipeHandleState 함수는 전달된 모든 포인터가 NULL인 경우에도 성공적으로 반환됩니다.
파이프 핸들 상태를 설정하려면 SetNamedPipeHandleState 함수를 사용합니다.
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 |