CreateConsoleScreenBuffer 함수
Important
이 문서에서는 더 이상 에코시스템 로드맵의 일부가 되지 않는 콘솔 플랫폼 기능에 대해 설명합니다. 이 콘텐츠를 신제품에서 사용하지 않는 것이 좋지만, 무기한 앞으로도 기존 사용을 계속 지원할 것입니다. 선호하는 최신 솔루션은 플랫폼 간 시나리오에서 최대 호환성을 위해 가상 터미널 시퀀스에 중점을 둡니다. 이 디자인 결정에 대한 자세한 내용은 클래식 콘솔과 가상 터미널 문서에서 확인할 수 있습니다.
콘솔 화면 버퍼를 만듭니다.
구문
HANDLE WINAPI CreateConsoleScreenBuffer(
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ const SECURITY_ATTRIBUTES *lpSecurityAttributes,
_In_ DWORD dwFlags,
_Reserved_ LPVOID lpScreenBufferData
);
매개 변수
dwDesiredAccess [in]
콘솔 화면 버퍼에 대한 액세스입니다. 액세스 권한 목록은 콘솔 버퍼 보안 및 액세스 권한을 참조 하세요.
dwShareMode [in]
이 매개 변수는 버퍼를 공유할 수 없거나 다음 값 중 하나 이상이 될 수 있음을 나타내는 0일 수 있습니다.
값 | 의미 |
---|---|
FILE_SHARE_READ 0x00000001 | 읽기 액세스를 위해 콘솔 화면 버퍼에서 다른 열린 작업을 수행할 수 있습니다. |
FILE_SHARE_WRITE 0x00000002 | 쓰기 액세스를 위해 콘솔 화면 버퍼에서 다른 열린 작업을 수행할 수 있습니다. |
lpSecurityAttributes [in, optional]
반환된 핸들을 자식 프로세스에서 상속할 수 있는지 여부를 결정하는 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. lpSecurityAttributes가 NULL이면 핸들을 상속할 수 없습니다. 구조체의 lpSecurityDescriptor 멤버는 새 콘솔 화면 버퍼에 대한 보안 설명자를 지정합니다. lpSecurityAttributes가 NULL이면 콘솔 화면 버퍼는 기본 보안 설명자를 가져옵니다. 콘솔 화면 버퍼에 대한 기본 보안 설명자의 ACL은 작성자의 기본 또는 가장 토큰에서 가져옵니다.
dwFlags [in]
만들 콘솔 화면 버퍼의 유형입니다. 지원되는 유일한 화면 버퍼 유형은 CONSOLE_TEXTMODE_BUFFER.
lpScreenBufferData
예약; 은 NULL이어야 합니다.
반환 값
함수가 성공하면 반환 값은 새 콘솔 화면 버퍼에 대한 핸들입니다.
함수가 실패하는 경우 반환 값은 INVALID_HANDLE_VALUE입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
콘솔에는 여러 화면 버퍼가 있지만 활성 화면 버퍼는 하나만 있을 수 있습니다. 읽기 및 쓰기를 위해 비활성 화면 버퍼에 액세스할 수 있지만 활성 화면 버퍼만 표시됩니다. 새 화면 버퍼를 활성 화면 버퍼로 만들려면 SetConsoleActiveScreenBuffer 함수를 사용합니다.
새로 만든 화면 버퍼는 이 함수가 호출될 때 활성 화면 버퍼에서 일부 속성을 복사합니다. 동작은 다음과 같습니다.
Font
- 활성 화면 버퍼에서 복사됨Display Window Size
- 활성 화면 버퍼에서 복사됨Buffer Size
- 일치Display Window Size
(복사되지 않음 )Default Attributes
(색) - 활성 화면 버퍼에서 복사됨Default Popup Attributes
(색) - 활성 화면 버퍼에서 복사됨
호출 프로세스는 dwDesiredAccess 매개 변수로 지정된 액세스 제한에 따라 콘솔 화면 버퍼에 대한 핸들이 필요한 모든 함수에서 반환된 핸들을 사용할 수 있습니다 .
호출 프로세스는 DuplicateHandle 함수를 사용하여 원래 핸들과 액세스 또는 상속 가능성이 다른 중복 화면 버퍼 핸들을 만들 수 있습니다. 그러나 DuplicateHandle 은 상속을 제외한 다른 프로세스에 유효한 중복 항목을 만드는 데 사용할 수 없습니다.
콘솔 화면 버퍼 핸들을 닫려면 CloseHandle 함수를 사용합니다.
팁
이 API는 권장되지 않지만 대체 화면 버퍼 시퀀스에 해당하는 대략적인 가상 터미널이 있습니다. 대체 화면 버퍼를 설정하면 애플리케이션의 호출자가 표시한 콘텐츠를 유지하면서 세션 런타임 동안 그리기 위한 별도의 격리된 공간을 애플리케이션에 제공할 수 있습니다. 이 기본 프로세스 종료에서 간단한 복원을 위한 정보를 그리는 것을 확인합니다.
예제
예를 들어 문자 및 특성의 읽기 및 쓰기 블록을 참조 하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
헤더 | ConsoleApi2.h(WinCon.h를 통해 Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |