다음을 통해 공유


EngCreateBitmap 함수(winddi.h)

EngCreateBitmap 함수는 GDI가 비트맵을 만들고 관리해 줄 것을 요청합니다.

구문

ENGAPI HBITMAP EngCreateBitmap(
       SIZEL sizl,
       LONG  lWidth,
  [in] ULONG iFormat,
  [in] FLONG fl,
  [in] PVOID pvBits
);

매개 변수

sizl

만들 비트맵의 너비와 높이를 픽셀 단위로 포함하는 멤버의 SIZEL 구조를 지정합니다. SIZEL 구조체는 SIZE 구조체와 동일합니다.

pvBitsNULL이 아닌 경우 이 값은 디바이스에 표시되는 모든 픽셀을 나타내야 하므로 디바이스가 화면 외부 메모리를 유지할 수 있습니다.

lWidth

한 검색 줄 아래로 이동하려면 포인터에 추가해야 하는 바이트 수인 비트맵의 할당 너비를 지정합니다.

[in] iFormat

필요한 픽셀당 색 정보의 비트 수 측면에서 비트맵의 형식을 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
BMF_1BPP 단색
BMF_4BPP 픽셀당 4비트
BMF_8BPP 픽셀당 8비트
BMF_16BPP 픽셀당 16비트
BMF_24BPP 픽셀당 24비트
BMF_32BPP 픽셀당 32비트
BMF_4RLE 픽셀당 4비트; 실행 길이 인코딩됨
BMF_8RLE 픽셀당 8비트; 실행 길이 인코딩됨

[in] fl

만들 비트맵에 대한 속성을 지정하는 비트 마스크입니다. 이 매개 변수는 0이거나 다음 값의 조합일 수 있습니다.

의미
BMF_NOZEROINIT GDI는 비트맵을 할당할 때 비트맵을 0으로 초기화하지 않습니다. 이 플래그는 pvBitsNULL인 경우에만 확인됩니다.
BMF_TOPDOWN 첫 번째 검사 줄은 비트맵의 위쪽을 나타냅니다. 표준 형식 비트맵은 기본적으로 맨 아래에 첫 번째 검사 줄이 있습니다.
BMF_USERMEM GDI는 사용자 메모리에서 비트맵에 대한 메모리를 할당합니다. 기본적으로 메모리는 커널의 주소 공간에서 할당됩니다. 이 플래그는 생성되는 비트맵이 다른 프로세스에서 사용되지 않는 경우에만 지정해야 합니다. 프린터 드라이버에서 사용자 메모리를 EngWritePrinter 에 전달할 수 없습니다.

[in] pvBits

만들 비트맵의 첫 번째 검사 줄에 대한 포인터입니다. 이 매개 변수가 NULL이면 GDI는 비트맵의 픽셀에 대한 스토리지 공간을 할당합니다. pvBitsNULL이 아닌 경우 비트맵에 대한 버퍼에 대한 포인터입니다.

반환 값

함수가 성공적으로 완료되면 반환 값은 생성된 비트맵을 식별하는 핸들입니다. 그렇지 않으면 반환 값은 0입니다. EngCreateBitmap 은 오류 코드를 기록하지 않습니다.

설명

비트맵에 대한 스토리지는 필요에 따라 드라이버에서 제공할 수 있습니다.

드라이버는 DrvEnableSurface에서 반환하기 전에 EngAssociateSurface를 호출하여 생성된 비트맵을 표면으로 연결해야 합니다.

비트맵은 더 이상 필요하지 않은 경우 EngDeleteSurface 를 사용하여 삭제해야 합니다.

프레임 버퍼 표시 드라이버는 pvBits 매개 변수를 사용해야 하므로 GDI가 디스플레이에 직접 대부분의 그리기를 수행할 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 winddi.h(Winddi.h 포함)
라이브러리 Win32k.lib
DLL Win32k.sys

추가 정보

DrvCreateDeviceBitmap

EngAllocUserMem