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 cbBytesToCopy cbNewBuffer . |
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 cbNewBuffer
e 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