勇芳软件工作室.汉化:  Printing > Print Spooler API > Print Spooler API Reference > Print Spooler API Functions >

GetPrinterData

Previous pageReturn to chapter overviewNext page

描述

 

GetPrinterData功能检索指定打印机或打印服务器的配置数据。

 

在Windows 2000及更高版本的Windows中,调用GetPrinterData相当于使用pKeyName参数设置为“PrinterDriverData”来调用GetPrinterDataEx函数。

 

C++ 语法

 

DWORD GetPrinterData(

__in  HANDLE hPrinter,

__in  LPTSTR pValueName,

__out LPDWORD pType,

__out LPBYTE pData,

__in  DWORD nSize,

__out LPDWORD pcbNeeded

);

 

PowerBASIC 语法

 

FUNCTION GetPrinterDataA ( _

BYVAL hPrinter AS DWORD, _

BYREF pValueName AS ASCIIZ, _

BYREF pType AS DWORD, _

BYREF pData AS ANY, _

BYVAL nSize AS DWORD, _

BYREF pcbNeeded AS DWORD _

) AS DWORD

 

Unicode版本:

 

FUNCTION GetPrinterDataW ( _

BYVAL hPrinter AS DWORD, _

BYREF pValueName AS WSTRINGZ, _

BYREF pType AS DWORD, _

BYREF pData AS ANY, _

BYVAL nSize AS DWORD, _

BYREF pcbNeeded AS DWORD _

) AS DWORD

 

参数

 

hPrinter

 

[in]处理该函数检索配置数据的打印机或打印服务器。使用OpenPrinterAddPrinter功能来检索打印机句柄。

 

pValueName

 

[in]指向要终止的字符串的指针,用于标识要检索的数据。

 

对于打印机,此字符串是注册表中打印机“PrinterDriverData”键下的注册表值的名称。

 

对于打印服务器,此字符串是以下备注部分中列出的预定义字符串之一。

 

pType

 

[out]指向接收检索到的数据类型的变量的指针。当存储数据时,该函数返回在SetPrinterDataSetPrinterDataEx调用中指定的类型。如果不需要信息,此参数可以为NULL。

 

pData

 

[out]指向接收配置数据的缓冲区的指针。

 

nSize

 

[in]指定pData指向的缓冲区的大小(以字节为单位)。

 

pcbNeeded

 

[out]指向接收大小(以字节为单位)的配置数据的变量的指针。如果服务提供商指定的缓冲区大小太小,则函数返回ERROR_MORE_DATA,pcbNeeded表示所需的缓冲区大小。

 

在Windows 95/98 / Me中,如果服务提供商大于零,则行为如上所述。如果服务提供商为零,返回值为ERROR_SUCCESS,pcbNeeded返回所需的缓冲区大小。

 

返回值

 

如果函数成功,则返回值为ERROR_SUCCESS。如果函数失败,则返回值为错误值。

 

备注

 

GetPrinterData检索由SetPrinterDataExSetPrinterData功能设置的打印机配置数据。

 

GetPrinterData可能会触发Windows调用GetPrinterDataFromPort.(有关GetPrinterDataFromPort的更多信息,请参阅Windows开发工具包,以前的驱动程序开发工具包)。后者的功能可能会写入注册表。如果是这样,可能会有副作用,如触发客户端中的更新/升级打印机事件ID 20,如果打印机在网络中共享

 

如果hPrinter是打印服务器的句柄,则pValueName可以指定以下预定义值之一。

 

SPLREG_ALLOW_USER_MANAGEFORMS

 

Windows XP,SP2或更高版本。

Windows Server 2003,SP1或更高版本。

 

SPLREG_ARCHITECTURE

 

SPLREG_BEEP_ENABLED

 

SPLREG_DEFAULT_SPOOL_DIRECTORY

 

SPLREG_DNS_MACHINE_NAME

 

SPLREG_DS_PRESENT

 

成功返回后,pData如果机器位于DS域,则包含&H0001,否则为0。

 

SPLREG_DS_PRESENT_FOR_USER

 

成功返回后,如果用户登录到DS域,则pData包含&H0001,否则为0。

 

SPLREG_EVENT_LOG

 

SPLREG_MAJOR_VERSION

 

SPLREG_MINOR_VERSION

 

SPLREG_NET_POPUP

 

SPLREG_NET_POPUP_TO_COMPUTER

 

成功返回时,如果作业通知应发送到客户端计算机,则pData包含1,如果作业通知要发送给用户,则为0。

 

SPLREG_OS_VERSION

 

Windows XP或更高版本。

 

SPLREG_OS_VERSIONEX

 

Windows 2000或更高版本。

 

SPLREG_PORT_THREAD_PRIORITY_DEFAULT

 

Windows 2000或更高版本。

 

SPLREG_PORT_THREAD_PRIORITY

 

Windows 2000或更高版本。

 

SPLREG_PRINT_DRIVER_ISOLATION_GROUPS_SEPARATOR

 

Windows 7或更高版本。

 

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

 

Windows 2000或更高版本。

 

成功返回后,pData如果FAX服务支持远程客户端,则包含&H0001,否则为0。

 

SPLREG_RETRY_POPUP

 

Windows 2000或更高版本。

 

成功返回时,如果服务器设置为重试所有作业的PopUps,pData包含1,如果服务器未重试所有作业的PopUps,则为0。

 

SPLREG_SCHEDULER_THREAD_PRIORITY

 

Windows 2000或更高版本。

 

SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT

 

Windows 2000或更高版本。

 

SPLREG_WEBSHAREMGMT

 

Windows Server 2003或更高版本。

 

SPLREG_W3SVCINSTALLED

 

Windows 2000或更高版本。

 

pValueName的以下值表示发生错误时的池打印行为。

 

SPLREG_RESTART_JOB_ON_POOL_ERROR

 

pData的值表示发生错误后在另一个端口上重新启动作业的时间(以秒为单位)。此设置与SPLREG_RESTART_JOB_ON_POOL_ENABLED一起使用。

 

SPLREG_RESTART_JOB_ON_POOL_ENABLED

 

pData中的非零值表示SPLREG_RESTART_JOB_ON_POOL_ERROR已启用。

 

在SPLREG_RESTART_JOB_ON_POOL_ERROR中指定的时间是最短时间。实际时间可能会更长,这取决于以下端口监视器设置,它们位于HKLM \\ SYSTEM \\ CurrentControlSet \\ Control \\ Print \\ Monitors \\ MonitorName \\ Ports下。

 

端口监视器设置

含义

StatusUpdateEnabled

如果非零值,端口监视器将使用端口状态更新后台处理程序。

StatusUpdateInterval

指定端口监视器使用端口状态更新后台处理程序的时间间隔(以秒为单位)。

 

引用文件 #INCLUDE Once

 

WinSpool.inc(包括Windows.inc)