Compartilhar via


Método IGlobalRSCAQueryProvider::ResizeOutputBuffer

Redimensiona e retorna a matriz de saída BYTE .

Sintaxe

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

Parâmetros

cbNewBuffer
[IN] Um DWORD que contém o número de bytes a serem alocados.

cbBytesToCopy
[IN] Um DWORD que contém o número de bytes a serem copiados para ppbBuffer o novo buffer.

ppbBuffer
[IN] [OUT] Um ponteiro para uma BYTE matriz que contém o novo buffer.

Valor Retornado

Um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Valor Definição
S_OK Indica que a operação foi bem-sucedida.
E_INVALIDARG Indica que é maior que cbBytesToCopycbNewBuffer.
E_OUTOFMEMORY Indica que a memória de heap está esgotada.

Comentários

Classes derivadas de CGlobalModule que se registram para eventos GL_RSCA_QUERY recebem um ponteiro IGlobalRscaQueryProvider como um parâmetro no método CGlobalModule::OnGlobalRSCAQueryvirtual. Em seguida, você pode redimensionar uma matriz atual BYTE chamando o ResizeOutputBuffer método no IGlobalRSCAQueryProvider ponteiro .

O ResizeOutputBuffer valor retornado depende da implementação. Você deve usar as seguintes informações como uma diretriz, mas elas podem não estar corretas em todos os cenários:

O IGlobalRSCAQueryProvider implementador declara um private``BYTE ponteiro como uma variável de membro chamada buffer; o implementador inicializa buffer para NULL na construção. Se o cbBytesToCopy parâmetro for maior que o cbNewBuffer parâmetro quando ResizeOutputBuffer for chamado, ResizeOutputBuffer retornará imediatamente E_INVALIDARG. Caso contrário, a função LocalAlloc será chamada para criar um novo buffer de tamanho cbNewBuffere o conteúdo do ppbBuffer parâmetro (até o comprimento de cbBytesToCopy) será copiado para esse novo buffer. A função LocalFree é então chamada para descartar o buffer privado, que é reatribuído ao novo buffer. O private buffer será retornado no parâmetro desreferenciado ppbBuffer se ResizeOutputBuffer retornar S_OK.

Importante Esse método faz parte da infraestrutura do IIS 7 e não se destina a ser usado diretamente do seu código.

Notas para implementadores

IGlobalRSCAQueryProvider os implementadores são responsáveis pelo gerenciamento de memória com esses dados; Portanto, IGlobalRSCAQueryProvider os implementadores que usam alocação de memória dinâmica devem liberar ou chamar delete no BYTE ponteiro quando ele não for mais necessário.

Observações para chamadores

IGlobalRSCAQueryProvider os implementadores são responsáveis pelo gerenciamento de memória com esses dados; Portanto, IGlobalRSCAQueryProvider os clientes não devem liberar ou chamar delete no ponteiro retornado BYTE quando esses dados não forem mais necessários.

Requisitos

Type Descrição
Cliente – IIS 7.0 no Windows Vista
– IIS 7.5 no Windows 7
– IIS 8.0 no Windows 8
– IIS 10.0 no Windows 10
Servidor – IIS 7.0 no Windows Server 2008
– IIS 7.5 no Windows Server 2008 R2
– IIS 8.0 no Windows Server 2012
– IIS 8.5 no Windows Server 2012 R2
– IIS 10.0 no Windows Server 2016
Produto - 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
parâmetro Httpserv.h

Consulte Também

IGlobalRSCAQueryProvider Interface
Método IGlobalRSCAQueryProvider::GetOutputBuffer