다음을 통해 공유


EngAssociateSurface 함수(winddi.h)

EngAssociateSurface 함수는 지정된 표면을 지정된 디바이스에 속하는 것으로 표시합니다.

구문

ENGAPI BOOL EngAssociateSurface(
  HSURF hsurf,
  HDEV  hdev,
  FLONG flHooks
);

매개 변수

hsurf

hdev와 연결할 표면 또는 비트맵에 대한 핸들입니다. 이 핸들은 EngCreateBitmap 또는 EngCreateDeviceBitmap에서 반환되었습니다.

hdev

표면이 연결될 디바이스에 대한 핸들입니다. 드라이버의 DrvCompletePDEV 함수에 전달된 GDI 생성 핸들입니다.

flHooks

드라이버가 GDI에서 후크할 수 있는 함수를 지정합니다. 드라이버는 flHook에서 설정하는 모든 비트에 대해 해당 함수를 구현해야 합니다. 이 멤버는 다음 값 중 비트 OR입니다.

플래그 후크할 함수
HOOK_ALPHABLEND

DrvAlphaBlend

HOOK_BITBLT

DrvBitBlt

HOOK_COPYBITS

DrvCopyBits

HOOK_FILLPATH

DrvFillPath

HOOK_GRADIENTFILL

DrvGradientFill

HOOK_LINETO

DrvLineTo

HOOK_MOVEPANNING 사용되지 않음
HOOK_PAINT 사용되지 않음
HOOK_PLGBLT

DrvPlgBlt

HOOK_STRETCHBLT

DrvStretchBlt

HOOK_STRETCHBLTROP

DrvStretchBltROP

HOOK_STROKEANDFILLPATH

DrvStrokeAndFillPath

HOOK_STROKEPATH

DrvStrokePath

HOOK_SYNCHRONIZE

DrvSynchronize 또는 DrvSynchronizeSurface (둘 중 하나 또는 둘 다)

HOOK_SYNCHRONIZEACCESS 사용되지 않음
HOOK_TEXTOUT

DrvTextOut

HOOK_TRANSPARENTBLT

DrvTransparentBlt

반환 값

함수가 성공하면 반환 값은 TRUE 입니다. 그렇지 않으면 드라이버는 구현 중인 GDI 함수에 정보를 보내고 GDI의 반환 값을 반환해야 합니다.

설명

EngAssociateSurface 는 프린터 드라이버에서 "규칙" 또는 디바이스 글꼴을 구현하거나 디스플레이 드라이버에서 특수 Blt 하드웨어를 사용하는 데 사용할 수 있습니다.

hsurf로 식별되는 표면이 표준 형식 비트맵인 경우 드라이버는 flHook에서 비트를 설정하여 처리할 표면에 대한 출력 함수를 지정할 수 있습니다. flHook에서 비트를 설정하면 특정 출력 함수가 드라이버로 대신 전송됩니다. 이를 후킹이라고 합니다. 드라이버가 호출을 후크하지 않으면 표준 형식 비트맵을 그릴 때 GDI가 자동으로 작업을 관리합니다.

표면이 연결되면 PDEV의 기본 색상표 및 스타일 단계를 가정합니다. DrvEnableSurface에서 반환하기 전에 표면을 연결해야 합니다.

기본적으로 드라이버가 DrvCreateDeviceBitmap DrvDeleteDeviceBitmap/을 구현하여 디바이스 비트맵을 지원하는 경우 GDI는 그리기 호출을 디바이스 비트맵 및 기본 표면에 자동으로 동기화하지 않습니다. 예를 들어 GDI는 드라이버의 DrvBitBlt 함수를 호출하여 디바이스 비트맵에 그릴 수 있으며, 다른 스레드는 드라이버의 DrvTextOut 구현을 실행하여 기본 화면에 그릴 수 있습니다. 드라이버를 호출하여 동시에 여러 디바이스 비트맵에 그릴 수도 있습니다.

DrvEnableSurface가 핸들을 기본 표면으로 반환한 후에는 해당 핸들에서 EngAssociateSurface를 호출하지 마세요. 이렇게 하면 특정 상황에서 버그 검사 발생할 수 있습니다. 자세한 내용은 Microsoft 기술 자료 문서 330248 참조하세요.

요구 사항

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

추가 정보

DrvBitBlt

DrvCompletePDEV

DrvCopyBits

DrvCreateDeviceBitmap

DrvDeleteDeviceBitmap

DrvEnableSurface

DrvFillPath

DrvLineTo

DrvStretchBlt

DrvStrokeAndFillPath

DrvStrokePath

DrvSynchronize

DrvSynchronizeSurface

DrvTextOut

EngModifySurface