SetPrinterDataEx 함수

SetPrinterDataEx 함수는 프린터 또는 인쇄 서버에 대한 구성 데이터를 설정합니다. 함수는 프린터의 레지스트리 키 아래에 구성 데이터를 저장합니다.

구문

DWORD SetPrinterDataEx(
  _In_ HANDLE  hPrinter,
  _In_ LPCTSTR pKeyName,
  _In_ LPCTSTR pValueName,
  _In_ DWORD   Type,
  _In_ LPBYTE  pData,
  _In_ DWORD   cbData
);

매개 변수

hPrinter [ in]

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

pKeyName [ in]

설정할 값이 포함된 키를 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 지정된 키 또는 하위 키가 없으면 함수에서 해당 키를 만듭니다.

DS(디렉터리 서비스)에 게시할 수 있는 구성 데이터를 저장하려면 다음 미리 정의된 레지스트리 키 중 하나를 지정합니다.

의미
SPLDS_DRIVER_KEY
프린터 드라이버는 이 키를 사용하여 드라이버 속성을 저장합니다.
SPLDS_SPOOLER_KEY
예약되어 있습니다. 인쇄 스풀러에서 내부 스풀러 속성을 저장하는 데만 사용됩니다.
SPLDS_USER_KEY
애플리케이션 프린터 자산 번호와 같은 프린터 속성을 저장 하려면이 키를 사용 합니다.

SPLDS_USER_KEY 키 아래에 저장된 값은 스키마에 해당 속성이 있는 경우에만 디렉터리 서비스에 게시됩니다. 도메인 관리자는 속성이 없는 경우 만들어야 합니다. SetPrinterDataEx를 사용하여 값을 추가하거나 변경한 후 사용자 정의 속성을 게시하려면 Level = 7인 SetPrinter를 호출하고 PRINTER_INFO_7 dwAction 멤버를 DSPRINT_UPDATE 로 설정합니다.

다른 키를 지정하여 비 DS 구성 데이터를 저장할 수 있습니다. 백슬래시( ) 문자를 구분 기호로 사용하여 \ 하나 이상의 하위 키를 포함하는 경로를 지정합니다.

hPrinter가 프린터에 대한 핸들이고 pKeyName이 NULL이거나 빈 문자열인 경우 SetPrinterDataEx는 ERROR_INVALID_PARAMETER 반환합니다.

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

SPLDS_SPOOLER_KEY 사용하지 마십시오. 스풀러 프린터 속성을 변경하려면 SetPrinter with Level = 2를 사용합니다.

pValueName [ in]

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

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

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

형식 [ in]

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

pKeyName이 미리 정의된 디렉터리 서비스 키 중 하나를 지정하는 경우 형식은 REG_SZ, REG_MULTI_SZ, REG_DWORD 또는 REG_BINARY 여야 합니다. REG_BINARY 사용하는 경우 cbData는 1과 같아야 하며 디렉터리 서비스는 데이터를 부울 값으로 처리합니다.

pData [ in]

프린터 구성 데이터가 들어 있는 버퍼에 대한 포인터입니다.

cbData [ in]

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

반환 값

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

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

설명

참고

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

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

pKeyName 매개 변수를 "PrinterDriverData"로 설정하여 SetPrinterDataEx를 호출하는 것은 SetPrinterData 함수를 호출하는 것과 같습니다.

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 \ 컨트롤 인쇄 모니터 \ \ \ < 모니터이름 > \ 포트

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

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

스풀러가 작업을 풀에서 사용 가능한 다음 프린터 (인쇄 작업이 설정 된 시간 내에 인쇄 되지 않는 경우)로 리디렉션하 게 하려면 포트 모니터에서 SNMP를 지원 해야 하 고 풀의 네트워크 포트를 "SNMP 상태 사용"으로 구성 해야 합니다. SNMP를 지 원하는 포트 모니터는 표준 TCP/IP 포트 모니터입니다.

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

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

요구 사항

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

참고 항목

인쇄

인쇄 스풀러 API 함수

Get프린터 Dataex

OpenPrinter

SetPrinter

PRINTER_INFO_7