GetPrinterDataEx 함수

GetPrinterDataEx 함수는 지정된 프린터 또는 인쇄 서버에 대한 구성 데이터를 검색합니다. GetPrinterDataExSetPrinterData 함수가 저장한 값을 검색할 수 있습니다. 또한 GetPrinterDataExSetPrinterDataEx 함수가 지정된 키 아래에 저장된 값을 검색할 수 있습니다.

구문

DWORD GetPrinterDataEx(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _In_  LPCTSTR pValueName,
  _Out_ LPDWORD pType,
  _Out_ LPBYTE  pData,
  _In_  DWORD   nSize,
  _Out_ LPDWORD pcbNeeded
);

매개 변수

hPrinter [in]

함수가 구성 데이터를 검색하는 프린터 또는 인쇄 서버에 대한 핸들입니다. OpenPrinter, OpenPrinter2 또는 AddPrinter 함수를 사용하여 프린터 핸들을 검색합니다.

pKeyName [in]

검색할 값이 포함된 키를 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 백슬래시( \ ) 문자를 구분 기호로 사용하여 하나 이상의 하위 키가 있는 경로를 지정합니다.

hPrinter가 프린터에 대한 핸들이고 pKeyNameNULL이거나 빈 문자열인 경우 GetPrinterDataExERROR_INVALID_PARAMETER 반환합니다.

hPrinter가 인쇄 서버에 대한 핸들인 경우 pKeyName은 무시됩니다.

pValueName [in]

검색할 데이터를 식별하는 null로 끝나는 문자열에 대한 포인터입니다.

프린터의 경우 이 문자열은 pKeyName 키 아래의 값 이름을 지정합니다.

인쇄 서버의 경우 이 문자열은 다음 주의 섹션에 나열된 미리 정의된 문자열 중 하나입니다.

pType [out]

값에 저장된 데이터 형식을 수신하는 변수에 대한 포인터입니다. 함수는 데이터가 저장되었을 때 SetPrinterDataEx 호출에 지정된 형식을 반환합니다. 정보가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다. GetPrinterDataExRegQueryValueEx 함수 호출의 lpdwType 매개 변수로 pType을 전달합니다.

pData [out]

구성 데이터를 수신하는 버퍼에 대한 포인터입니다.

nSize [in]

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

pcbNeeded [out]

구성 데이터의 크기(바이트)를 수신하는 변수에 대한 포인터입니다. nSize로 지정된 버퍼 크기가 너무 작으면 함수는 ERROR_MORE_DATA 반환하고 pcbNeeded는 필요한 버퍼 크기를 나타냅니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

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

설명

참고

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

GetPrinterDataExSetPrinterDataExSetPrinterData 함수에 의해 설정된 프린터 구성 데이터를 검색합니다.

pKeyName 매개 변수가 "PrinterDriverData"로 설정된 GetPrinterDataEx를 호출하는 것은 GetPrinterData 함수를 호출하는 것과 같습니다.

hPrinter가 인쇄 서버에 대한 핸들인 경우 pValueName은 다음 미리 정의된 값 중 하나를 지정할 수 있습니다.

주석
SPLREG_ALLOW_USER_MANAGEFORMS Windows XP SP2(서비스 팩 2) 이상
Windows Server 2003 SP1(서비스 팩 1) 이상
SPLREG_ARCHITECTURE
SPLREG_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_DNS_MACHINE_NAME
SPLREG_DS_PRESENT 반환이 성공적이면 컴퓨터가 DS 도메인에 있으면 pData 에 0x0001 포함되고, 그렇지 않으면 0이 포함됩니다.
SPLREG_DS_PRESENT_FOR_USER 성공적인 반환 시 pData 에는 사용자가 DS 도메인에 로그온한 경우 0x0001 포함되고, 그렇지 않으면 0이 포함됩니다.
SPLREG_EVENT_LOG
SPLREG_MAJOR_VERSION
SPLREG_MINOR_VERSION
SPLREG_NET_POPUP Windows Server 2003 이상에서는 지원되지 않음
SPLREG_NET_POPUP_TO_COMPUTER 성공적인 반환 시 pData 에는 작업 알림을 클라이언트 컴퓨터로 보내야 하는 경우 1, 사용자에게 작업 알림을 보내야 하는 경우 0이 포함됩니다.
Windows Server 2003 이상에서는 지원되지 않음
SPLREG_OS_VERSION Windows XP 이상
SPLREG_OS_VERSIONEX
SPLREG_PORT_THREAD_PRIORITY_DEFAULT
SPLREG_PORT_THREAD_PRIORITY
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS Windows 7 이상
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE Windows 7 이상
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE Windows 7 이상
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT Windows 7 이상
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY Windows 7 이상
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY Windows 7 이상
SPLREG_REMOTE_FAX 반환이 성공하면 pData 는 FAX 서비스가 원격 클라이언트를 지원하는 경우 0x0001 포함하고, 그렇지 않으면 0을 포함합니다.
SPLREG_RETRY_POPUP 반환이 성공적이면 pData 는 서버가 모든 작업에 대해 팝업 창을 다시 시도하도록 설정된 경우 1을, 서버가 모든 작업에 대해 팝업 창을 다시 시도하지 않는 경우 0을 포함합니다.
Windows Server 2003 이상에서는 지원되지 않음
SPLREG_SCHEDULER_THREAD_PRIORITY
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT
SPLREG_WEBSHAREMGMT Windows Server 2003 이상

다음 pValueName 값은 오류가 발생할 때 풀 인쇄 동작을 나타냅니다.

주석
SPLREG_RESTART_JOB_ON_POOL_ERROR pData 값은 오류가 발생한 후 다른 포트에서 작업이 다시 시작되는 시간(초)을 나타냅니다. 이 설정은 SPLREG_RESTART_JOB_ON_POOL_ENABLED 함께 사용됩니다.
SPLREG_RESTART_JOB_ON_POOL_ENABLED pData의 0이 아닌 값은 SPLREG_RESTART_JOB_ON_POOL_ERROR 사용하도록 설정되어 있음을 나타냅니다.

SPLREG_RESTART_JOB_ON_POOL_ERROR 지정된 시간은 최소 시간입니다. 이 레지스트리 키 아래의 레지스트리 값인 다음 포트 모니터 설정에 따라 실제 시간이 더 길어질 수 있습니다.

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\<MonitorName>\Ports

RegQueryValueEx 함수를 호출하여 이러한 값을 쿼리합니다.

포트 모니터 설정 데이터 형식 의미
StatusUpdateEnabled REG_DWORD 0이 아닌 값이면 포트 모니터가 포트 상태 스풀러를 업데이트할 수 있도록 합니다.
StatusUpdateInterval REG_DWORD 포트 모니터가 포트 상태 스풀러를 업데이트하는 간격(분)을 지정합니다.

pKeyName이 미리 정의된 DS(Directory Service) 키 중 하나이고(SetPrinter 참조) pValueName에 쉼표(',')가 포함된 경우 쉼표 앞의 pValueName 부분은 값 이름이고 쉼표 오른쪽에 있는 pValueName 부분은 DS 속성 OID입니다. OID라는 하위 키가 만들어지고 값 이름과 OID로 구성된 새 값이 OID 키 아래에 입력됩니다. SetPrinterDataEx 는 DS 키 아래에 값 이름 및 데이터도 추가합니다.

Windows 7 이상 버전의 Windows에서는 인쇄 서버로 전송되는 인쇄 작업이 기본적으로 클라이언트에서 렌더링됩니다. pKeyName을 "PrinterDriverData"로 설정하고 pValueName을 다음 표의 설정 값으로 설정하여 프린터에 대한 클라이언트 쪽 렌더링 구성을 읽을 수 있습니다.

설정 데이터 형식 Description
EMFDespoolingSetting REG_DWORD 값이 0이거나 이 값이 레지스트리에 없으면 인쇄 작업의 기본 클라이언트 쪽 렌더링을 사용하도록 설정합니다.
값 1은 인쇄 작업의 클라이언트 쪽 렌더링을 사용하지 않도록 설정합니다.
ForceClientSideRendering REG_DWORD 값이 0이거나 이 값이 레지스트리에 없으면 인쇄 작업이 클라이언트에서 렌더링됩니다. 클라이언트에서 인쇄 작업을 렌더링할 수 없는 경우 서버에서 렌더링됩니다. 인쇄 작업을 서버에서 렌더링할 수 없는 경우 실패합니다.
값이 1이면 클라이언트에서 인쇄 작업이 렌더링됩니다. 인쇄 작업을 클라이언트에서 렌더링할 수 없는 경우 실패합니다.

요구 사항

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

추가 정보

인쇄

인쇄 스풀러 API 함수

OpenPrinter

SetPrinterDataEx