다음을 통해 공유


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

참고 항목

콘솔 함수

콘솔 화면 버퍼

CloseHandle

DuplicateHandle

GetConsoleScreenBufferInfo

SECURITY_ATTRIBUTES

SetConsoleActiveScreenBuffer

SetConsoleScreenBufferSize