Método IGlobalRSCAQueryProvider::ResizeOutputBuffer
Redimensiona e retorna a matriz de saída BYTE
.
virtual HRESULT ResizeOutputBuffer(
DWORD cbNewBuffer,
DWORD cbBytesToCopy,
IN OUT BYTE** ppbBuffer
) = 0;
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.
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. |
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.
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.
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.
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 |
IGlobalRSCAQueryProvider Interface
Método IGlobalRSCAQueryProvider::GetOutputBuffer