Método IPrintOemUni::MemoryUsage (prcomoem.h)
El método IPrintOemUni::MemoryUsage
se puede usar con impresoras compatibles con Unidrv para especificar la cantidad de memoria necesaria para su uso por parte de un complemento de representación IPrintOemUni::ImageProcessing método.
Sintaxis
HRESULT MemoryUsage(
PDEVOBJ pdevobj,
POEMMEMORYUSAGE pMemoryUsage
);
Parámetros
pdevobj
Puntero proporcionado por el autor de la llamada a una estructura DEVOBJ.
pMemoryUsage
Puntero proporcionado por el autor de la llamada a una estructura de OEMMEMORYUSAGE de.
Valor devuelto
El método debe devolver uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
La operación se realizó correctamente. |
|
Error en la operación. |
|
El método no se implementa. |
Observaciones
El objetivo del método IPrintOemUni::MemoryUsage
es ayudar al controlador Unidrv a determinar el tamaño óptimo de la superficie de dibujo GDI, en función de los requisitos de memoria del método IPrintOemUni::ImageProcessing. La implementación del método IPrintOemUni::MemoryUsage
es opcional.
El método IPrintOemUni::MemoryUsage
debe devolver dos valores, como se indica a continuación:
-
Cantidad de memoria asignada permanentemente y de tamaño fijo que el método IPrintOemUni::ImageProcessing debe asignar.
Este valor se devuelve en el miembro dwFixedMemoryUsage de de la estructura OEMMEMORYUSAGE de.
-
Cantidad de memoria necesaria para contener un mapa de bits después de que el método IPrintOemUni::ImageProcessing haya terminado de procesarlo.
El complemento de representación devuelve este mapa de bits procesado a Unidrv o lo agrupa. La cantidad de memoria necesaria para almacenar el mapa de bits procesado se devuelve en el dwPercentMemoryUsage miembro de la estructura OEMMEMORYUSAGE y se expresa como un porcentaje del tamaño del mapa de bits de origen.
Unidrv proporciona el miembro dwMaxBandSize de la estructura OEMMEMORYUSAGE y especifica el tamaño máximo de banda predeterminado.
Antes de que el controlador Unidrv cree una superficie de dibujo, solicita A GDI que determine el tamaño óptimo para los mapas de bits de bandas de imágenes, en función de la memoria del sistema disponible. Este espacio de memoria óptimo debe compartirse, para cada mapa de bits de bandas, entre un mapa de bits de origen que se pasa a la IPrintOemUni::ImageProcessing método y un mapa de bits procesado (normalmente más pequeño) que el método devuelve o genera. Unidrv llama al método IPrintOemUni::MemoryUsage
del complemento de representación, si existe, y usa el resultado para calcular la mejor manera de dividir el espacio de memoria óptimo.
Por ejemplo, supongamos que la cantidad óptima de memoria que se va a usar para dibujar es de 6 megabytes (contenida en el miembro dwMaxBandSize de la estructura OEMMEMORYUSAGE), mientras que el método IPrintOemUni::MemoryUsage
del complemento de representación devuelve valores de cero para dwFixedMemoryUsage y 50 para dwPercentMemoryUsage. El valor de 50 significa que el IPrintOemUni::ImageProcessing los mapas de bits de salida del método serán 50 % más pequeños que los mapas de bits de origen. Por lo tanto, Unidrv asignará un tamaño de mapa de bits de origen de 4 megabytes, lo que hará que los mapas de bits de salida sean de 2 megabytes.
Si no se proporciona un método IPrintOemUni::MemoryUsage
, Unidrv asigna todo el espacio disponible óptimo al mapa de bits de origen. Esto es aceptable si el método IPrintOemUni::ImageProcessing devuelve el mapa de bits procesado en el espacio de memoria asignado para el mapa de bits de origen. Sin embargo, si un complemento de representación IPrintOemUni::ImageProcessing método asigna espacio para un mapa de bits de destino, pero no proporciona un método IPrintOemUni::MemoryUsage
, el resultado es que se asignará más memoria para mapas de bits que el tamaño óptimo disponible, lo que podría provocar una degradación del rendimiento.
El método IPrintOemUni::MemoryUsage
es opcional. Si un complemento de representación implementa este método, el método IPrintOemUni::GetImplementedMethod debe devolver S_OK cuando recibe "MemoryUsage" como entrada.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | prcomoem.h (include Prcomoem.h) |