SetPrinterData 함수

SetPrinterData 함수는 프린터 또는 인쇄 서버의 구성 데이터를 설정합니다.

데이터를 저장할 레지스트리 키를 지정하려면 SetPrinterDataEx 함수를 호출합니다. SetPrinterData를 호출하는 것은 pKeyName 매개 변수가 "PrinterDriverData"로 설정된 SetPrinterDataEx 함수를 호출하는 것과 같습니다.

구문

DWORD SetPrinterData(
  _In_ HANDLE hPrinter,
  _In_ LPTSTR pValueName,
  _In_ DWORD  Type,
  _In_ LPBYTE pData,
  _In_ DWORD  cbData
);

매개 변수

hPrinter [in]

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

pValueName [in]

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

프린터의 경우 이 문자열은 레지스트리에 있는 프린터의 "PrinterDriverData" 키 아래에 있는 레지스트리 값의 이름입니다.

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

[ in] 입력

pData 매개 변수가 가리키는 데이터 형식을 나타내는 코드입니다. 가능한 형식 코드 목록은 레지스트리 값 형식을 참조하세요.

pData [in]

프린터 구성 데이터를 포함하는 바이트 배열에 대한 포인터입니다.

cbData [in]

배열의 크기(바이트)입니다.

반환 값

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

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

설명

참고

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

프린터에 대한 기존 구성 데이터를 검색하려면 GetPrinterDataEx 또는 GetPrinterData 함수를 호출합니다.

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

주석
SPLREG_ALLOW_USER_MANAGEFORMS Windows XP SP2(서비스 팩 2) 이상
Windows Server 2003 SP1(서비스 팩 1) 이상
SPLREG_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_EVENT_LOG
SPLREG_NET_POPUP Windows Server 2003 이상에서는 지원되지 않음
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_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

RegSetValueEx 함수를 호출하여 이러한 값을 설정합니다.

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

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

설정 데이터 형식 설명
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 이름
SetPrinterDataW (유니코드) 및 SetPrinterDataA (ANSI)

추가 정보

인쇄

인쇄 스풀러 API 함수

GetPrinter

GetPrinterData

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx