GetPrinter 함수

GetPrinter 함수는 지정된 프린터에 대한 정보를 검색합니다.

구문

BOOL GetPrinter(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPrinter,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

매개 변수

hPrinter [in]

함수가 정보를 검색하는 프린터에 대한 핸들입니다. OpenPrinter 또는 AddPrinter 함수를 사용하여 프린터 핸들을 검색합니다.

수준 [in]

함수가 pPrinter가 가리키는 버퍼에 저장하는 구조체의 수준 또는 형식입니다.

이 값은 1, 2, 3, 4, 5, 6, 7, 8 또는 9일 수 있습니다.

pPrinter [out]

지정된 프린터에 대한 정보가 포함된 구조를 수신하는 버퍼에 대한 포인터입니다. 버퍼는 구조체 및 구조체 멤버가 가리키는 문자열 또는 기타 데이터를 받을 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 pcbNeeded 매개 변수는 필요한 버퍼 크기를 반환합니다.

구조체의 형식은 Level 값에 따라 결정 됩니다.

Level 구조체
1
일반 프린터 정보를 포함하는 PRINTER_INFO_1 구조체입니다.
2
프린터에 대한 자세한 정보를 포함하는 PRINTER_INFO_2 구조체입니다.
3
프린터의 보안 정보를 포함하는 PRINTER_INFO_3 구조체입니다.
4
프린터 이름, 서버 이름, 프린터가 원격인지 로컬인지 여부 등 최소 프린터 정보를 포함하는 PRINTER_INFO_4 구조체입니다.
5
프린터 특성 및 시간 제한 설정과 같은 프린터 정보를 포함하는 PRINTER_INFO_5 구조체입니다.
6
프린터의 상태 값을 지정하는 PRINTER_INFO_6 구조체입니다.
7
프린터가 디렉터리 서비스에 게시되는지 여부를 나타내는 PRINTER_INFO_7 구조체입니다.
8
전역 기본 프린터 설정을 지정하는 PRINTER_INFO_8 구조체입니다.
9
사용자별 기본 프린터 설정을 지정하는 PRINTER_INFO_9 구조체입니다.

cbBuf [in]

pPrinter가 가리키는 버퍼의 크기(바이트)입니다.

pcbNeeded [out]

함수가 프린터 정보의 크기(바이트)로 설정하는 변수에 대한 포인터입니다. cbBuf가 이 값보다 작으면 GetPrinter가 실패하고 값이 필요한 버퍼 크기를 나타냅니다. cbBuf가 이 값과 같거나 크면 GetPrinter가 성공하고 값은 버퍼에 저장된 바이트 수를 나타냅니다.

반환 값

함수가 성공하면 반환 값은 0이 아닌 값입니다.

함수가 실패하면 반환 값은 0입니다.

설명

참고

이는 차단 또는 동기 함수이며 즉시 반환되지 않을 수 있습니다. 이 함수가 얼마나 빨리 반환되는지는 네트워크 상태, 인쇄 서버 구성 및 애플리케이션을 작성할 때 예측하기 어려운 프린터 드라이버 구현 요소와 같은 런타임 요인에 따라 달라집니다. 사용자 인터페이스와의 상호 작용을 관리하는 스레드에서 이 함수를 호출하면 애플리케이션이 응답하지 않는 것처럼 보일 수 있습니다.

PRINTER_INFO_2, PRINTER_INFO_8PRINTER_INFO_9 구조체의 pDevMode 멤버는 NULL일 수 있습니다. 이 경우 드라이버가 성공적으로 다시 설치될 때까지 프린터를 사용할 수 없습니다.

보안 설명자에 대한 포인터를 포함하는 PRINTER_INFO_2 및 PRINTER_INFO_3 구조의 경우 함수는 호출자가 읽을 수 있는 권한이 있는 보안 설명자의 구성 요소만 검색합니다. 특정 보안 설명자 구성 요소를 검색하려면 OpenPrinter 함수를 호출하여 프린터에 대한 핸들을 검색할 때 필요한 액세스 권한을 지정해야 합니다. 다음 표에서는 다양한 보안 설명자 구성 요소를 읽는 데 필요한 액세스 권한을 보여 줍니다.

액세스 권한 보안 설명자 구성 요소
READ_CONTROL
소유자
기본 그룹
DACL(임의 액세스 제어 목록)
ACCESS_SYSTEM_SECURITY
SACL(시스템 액세스 제어 목록)

수준 7을 지정하는 경우 PRINTER_INFO_7dwAction 멤버는 다음 값 중 하나를 반환하여 프린터가 디렉터리 서비스에 게시되는지 여부를 나타냅니다.

dwAction 값 의미
DSPRINT_PUBLISH 프린터가 게시됩니다. pszObjectGUID 멤버에는 프린터와 연결된 디렉터리 서비스 인쇄 큐 개체의 GUID가 포함되어 있습니다.
DSPRINT_UNPUBLISH 프린터가 게시되지 않았습니다.
DSPRINT_PENDING 시스템에서 게시 또는 게시 취소 작업을 완료하려고 했음을 나타냅니다. SetPrinter 호출이 프린터를 게시하거나 게시 취소하지 못하면 시스템에서 백그라운드에서 작업을 완료하려고 추가로 시도합니다.

Windows Vista부터 GetPrinter 에서 반환된 프린터 데이터는 hPrinter 가 인쇄 서버에서 호스트하는 프린터를 참조하고 인쇄 서버에 대해 하나 이상의 열린 연결이 있는 경우 로컬 캐시에서 검색됩니다. 다른 모든 구성에서 프린터 데이터는 인쇄 서버에서 쿼리됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Winspool.h(Windows.h 포함)
라이브러리
Winspool.lib
DLL
Winspool.drv
유니코드 및 ANSI 이름
GetPrinterW (유니코드) 및 GetPrinterA (ANSI)

추가 정보

인쇄

인쇄 스풀러 API 함수

AbortPrinter

AddPrinter

ClosePrinter

DeletePrinter

EnumPrinters

PRINTER_INFO_1

PRINTER_INFO_2

PRINTER_INFO_3

PRINTER_INFO_4

PRINTER_INFO_5

PRINTER_INFO_7

PRINTER_INFO_8

PRINTER_INFO_9

OpenPrinter

SetPrinter