Compartir a través de


IGlobalRSCAQueryProvider::ResizeOutputBuffer (Método)

Cambia el tamaño y devuelve la matriz de salida BYTE .

Sintaxis

virtual HRESULT ResizeOutputBuffer(  
   DWORD cbNewBuffer,  
   DWORD cbBytesToCopy,  
   IN OUT BYTE** ppbBuffer  
) = 0;  

Parámetros

cbNewBuffer
[IN] que DWORD contiene el número de bytes que se van a asignar.

cbBytesToCopy
[IN] que DWORD contiene el número de bytes desde el que se va a copiar ppbBuffer en el nuevo búfer.

ppbBuffer
[IN] [OUT] Puntero a una BYTE matriz que contiene el nuevo búfer.

Valor devuelto

Una clase HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Value Definición
S_OK Indica que la operación se realizó correctamente.
E_INVALIDARG Indica que es mayor que cbBytesToCopycbNewBuffer.
E_OUTOFMEMORY Indica que se agota la memoria del montón.

Comentarios

Las clases derivadas de CGlobalModule que se registran para eventos de GL_RSCA_QUERY reciben un puntero IGlobalRscaQueryProvider como parámetro en el método CGlobalModule::OnGlobalRSCAQueryvirtual. A continuación, puede cambiar el tamaño de una matriz actual BYTE llamando al ResizeOutputBuffer método en el IGlobalRSCAQueryProvider puntero.

El ResizeOutputBuffer valor devuelto depende de la implementación. Debe usar la siguiente información como guía, pero puede que no sea correcta en todos los escenarios:

El IGlobalRSCAQueryProvider implementador declara un private``BYTE puntero como una variable miembro denominada buffer; el implementador inicializa buffer en NULL en la construcción. Si el cbBytesToCopy parámetro es mayor que el cbNewBuffer parámetro cuando ResizeOutputBuffer se llama a , ResizeOutputBuffer devuelve inmediatamente E_INVALIDARG. De lo contrario, se llama a la función LocalAlloc para crear un nuevo búfer de tamaño cbNewBuffery el contenido del ppbBuffer parámetro (hasta la longitud de cbBytesToCopy) se copia en este nuevo búfer. A continuación, se llama a la función LocalFree para eliminar el búfer privado, que se reasigna al nuevo búfer. A continuación, el private búfer se devuelve en el parámetro desreferenciado ppbBuffer si ResizeOutputBuffer devuelve S_OK.

Importante Este método forma parte de la infraestructura de IIS 7 y no está pensado para usarse directamente desde el código.

Notas para los implementadores

IGlobalRSCAQueryProvider los implementadores son responsables de la administración de memoria con estos datos; por lo tanto, IGlobalRSCAQueryProvider los implementadores que usan la asignación de memoria dinámica deben liberarse o llamar delete al BYTE puntero cuando ya no sea necesario.

Notas para autores de la llamada

IGlobalRSCAQueryProvider los implementadores son responsables de la administración de memoria con estos datos; por lo tanto, los IGlobalRSCAQueryProvider clientes no deben liberar ni llamar delete al puntero devuelto BYTE cuando estos datos ya no son necesarios.

Requisitos

Tipo Descripción
Remoto - IIS 7.0 en Windows Vista
- IIS 7.5 en Windows 7
- IIS 8.0 en Windows 8
- IIS 10.0 en Windows 10
Servidor - IIS 7.0 en Windows Server 2008
- IIS 7.5 en Windows Server 2008 R2
- IIS 8.0 en Windows Server 2012
- IIS 8.5 en Windows Server 2012 R2
- IIS 10.0 en Windows Server 2016
Producto - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0
- IIS Express 7.5, IIS Express 8.0, IIS Express 10.0
Encabezado Httpserv.h

Consulte también

IGlobalRSCAQueryProvider (Interfaz)
IGlobalRSCAQueryProvider::GetOutputBuffer (Método)