Función GetPrinterDataEx
La función GetPrinterDataEx recupera los datos de configuración de la impresora o el servidor de impresión especificados. GetPrinterDataEx puede recuperar valores almacenados en la función SetPrinterData . Además, GetPrinterDataEx puede recuperar valores que la función SetPrinterDataEx almacena en una clave especificada.
Sintaxis
DWORD GetPrinterDataEx(
_In_ HANDLE hPrinter,
_In_ LPCTSTR pKeyName,
_In_ LPCTSTR pValueName,
_Out_ LPDWORD pType,
_Out_ LPBYTE pData,
_In_ DWORD nSize,
_Out_ LPDWORD pcbNeeded
);
Parámetros
-
hPrinter [in]
-
Identificador de la impresora o servidor de impresión para el que la función recupera los datos de configuración. Use la función OpenPrinter, OpenPrinter2 o AddPrinter para recuperar un identificador de impresora.
-
pKeyName [in]
-
Puntero a una cadena terminada en null que especifica la clave que contiene el valor que se va a recuperar. Use el carácter de barra diagonal inversa ( \ ) como delimitador para especificar una ruta de acceso que tenga una o varias subclaves.
Si hPrinter es un identificador de una impresora y pKeyName es NULL o una cadena vacía, GetPrinterDataEx devuelve ERROR_INVALID_PARAMETER.
Si hPrinter es un identificador de un servidor de impresión, se omite pKeyName .
-
pValueName [in]
-
Puntero a una cadena terminada en null que identifica los datos que se van a recuperar.
En el caso de las impresoras, esta cadena especifica el nombre de un valor en la clave pKeyName .
En el caso de los servidores de impresión, esta cadena es una de las cadenas predefinidas enumeradas en la sección Comentarios siguiente.
-
pType [out]
-
Puntero a una variable que recibe el tipo de datos almacenados en el valor. La función devuelve el tipo especificado en la llamada SetPrinterDataEx cuando se almacenaron los datos. Este parámetro puede ser NULL si no necesita la información. GetPrinterDataEx pasa pType como el parámetro lpdwType de una llamada de función RegQueryValueEx .
-
pData [out]
-
Puntero a un búfer que recibe los datos de configuración.
-
nSize [in]
-
Tamaño, en bytes, del búfer al que apunta pData.
-
pcbNeededed [out]
-
Puntero a una variable que recibe el tamaño, en bytes, de los datos de configuración. Si el tamaño del búfer especificado por nSize es demasiado pequeño, la función devuelve ERROR_MORE_DATA y pcbNeeded indica el tamaño de búfer necesario.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto se ERROR_SUCCESS.
Si se produce un error en la función, el valor devuelto es un valor de error.
Comentarios
Nota
Se trata de una función de bloqueo o sincrónica y podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación de controladores de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.
GetPrinterDataEx recupera los datos de configuración de impresora establecidos por las funciones SetPrinterDataEx y SetPrinterData .
Llamar a GetPrinterDataEx con el parámetro pKeyName establecido en "PrinterDriverData" equivale a llamar a la función GetPrinterData .
Si hPrinter es un identificador de un servidor de impresión, pValueName puede especificar uno de los siguientes valores predefinidos.
Value | Comentarios |
---|---|
SPLREG_ALLOW_USER_MANAGEFORMS | Windows XP con Service Pack 2 (SP2) y versiones posteriores Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores |
SPLREG_ARCHITECTURE | |
SPLREG_BEEP_ENABLED | |
SPLREG_DEFAULT_SPOOL_DIRECTORY | |
SPLREG_DNS_MACHINE_NAME | |
SPLREG_DS_PRESENT | Si la devolución es correcta, pData contiene 0x0001 si la máquina está en un dominio DS; de lo contrario, es 0. |
SPLREG_DS_PRESENT_FOR_USER | Si la devolución es correcta, pData contiene 0x0001 si el usuario ha iniciado sesión en un dominio DS; de lo contrario, es 0. |
SPLREG_EVENT_LOG | |
SPLREG_MAJOR_VERSION | |
SPLREG_MINOR_VERSION | |
SPLREG_NET_POPUP | No se admite en Windows Server 2003 y versiones posteriores |
SPLREG_NET_POPUP_TO_COMPUTER | Si la devolución es correcta, pData contiene 1 si se deben enviar notificaciones de trabajo al equipo cliente o 0 si se envían notificaciones de trabajo al usuario. No se admite en Windows Server 2003 y versiones posteriores |
SPLREG_OS_VERSION | Windows XP y versiones posteriores |
SPLREG_OS_VERSIONEX | |
SPLREG_PORT_THREAD_PRIORITY_DEFAULT | |
SPLREG_PORT_THREAD_PRIORITY | |
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS | Windows 7 y versiones posteriores |
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE | Windows 7 y versiones posteriores |
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE | Windows 7 y versiones posteriores |
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT | Windows 7 y versiones posteriores |
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY | Windows 7 y versiones posteriores |
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY | Windows 7 y versiones posteriores |
SPLREG_REMOTE_FAX | Si la devolución es correcta, pData contiene 0x0001 si el servicio fax admite clientes remotos, de lo contrario, 0. |
SPLREG_RETRY_POPUP | Si el resultado es correcto, pData contiene 1 si el servidor está configurado para reintentar ventanas emergentes para todos los trabajos o 0 si el servidor no vuelve a intentar ventanas emergentes para todos los trabajos. No se admite en Windows Server 2003 y versiones posteriores |
SPLREG_SCHEDULER_THREAD_PRIORITY | |
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT | |
SPLREG_WEBSHAREMGMT | Windows Server 2003 y versiones posteriores |
Los siguientes valores de pValueName indican el comportamiento de impresión del grupo cuando se produce un error.
Value | Comentarios |
---|---|
SPLREG_RESTART_JOB_ON_POOL_ERROR | El valor de pData indica el tiempo, en segundos, cuando se reinicia un trabajo en otro puerto después de producirse un error. Esta configuración se usa con SPLREG_RESTART_JOB_ON_POOL_ENABLED. |
SPLREG_RESTART_JOB_ON_POOL_ENABLED | Un valor distinto de cero en pData indica que SPLREG_RESTART_JOB_ON_POOL_ERROR está habilitado. |
El tiempo especificado en SPLREG_RESTART_JOB_ON_POOL_ERROR es un tiempo mínimo. El tiempo real puede ser más largo, según la siguiente configuración del monitor de puerto, que son valores del Registro en esta clave del Registro:
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\<MonitorName>\Ports
Llame a la función RegQueryValueEx para consultar estos valores.
Configuración del monitor de puerto | Tipo de datos | Significado |
---|---|---|
StatusUpdateEnabled | REG_DWORD | Si un valor distinto de cero, permite que el monitor de puertos actualice el administrador de colas con el estado del puerto. |
StatusUpdateInterval | REG_DWORD | Especifica el intervalo, en minutos, cuando el monitor de puertos actualiza el administrador de cola con el estado del puerto. |
Si pKeyName es una de las claves predefinidas del Servicio de directorio (DS) (vea SetPrinter) y pValueName contiene una coma (','), la parte de pValueName antes de que la coma sea el nombre de valor y la parte de pValueName a la derecha de la coma es el OID de la propiedad DS. Se crea una subclave denominada OID y se escribe un nuevo valor que consta del nombre del valor y el OID se escribe en la clave OID. SetPrinterDataEx también agrega el nombre de valor y los datos en la clave DS.
En Windows 7 y versiones posteriores de Windows, los trabajos de impresión que se envían a un servidor de impresión se representan en el cliente de forma predeterminada. La configuración de la representación del lado cliente para una impresora se puede leer estableciendo pKeyName en "PrinterDriverData" y pValueName en el valor de configuración de la tabla siguiente.
Configuración | Tipo de datos | Descripción |
---|---|---|
EMFDespoolingSetting | REG_DWORD | Un valor de 0, o si este valor no está presente en el registro, habilita la representación predeterminada del lado cliente de los trabajos de impresión. Un valor de 1 deshabilita la representación del lado cliente de los trabajos de impresión. |
ForceClientSideRendering | REG_DWORD | Un valor de 0, o si este valor no está presente en el Registro, hará que los trabajos de impresión se represente en el cliente. Si no se puede representar un trabajo de impresión en el cliente, se representará en el servidor. Si no se puede representar un trabajo de impresión en el servidor, se producirá un error. Un valor de 1 representará los trabajos de impresión en el cliente. Si no se puede representar un trabajo de impresión en el cliente, se producirá un error. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|
Nombres Unicode y ANSI |
GetPrinterDataExW (Unicode) y GetPrinterDataExA (ANSI) |