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_8및PRINTER_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[데스크톱 앱만] |
헤더 |
|
라이브러리 |
|
DLL |
|
유니코드 및 ANSI 이름 |
GetPrinterW (유니코드) 및 GetPrinterA (ANSI) |