Метод IGlobalRSCAQueryProvider::ResizeOutputBuffer
Изменяет размер и возвращает выходной BYTE
массив.
Синтаксис
virtual HRESULT ResizeOutputBuffer(
DWORD cbNewBuffer,
DWORD cbBytesToCopy,
IN OUT BYTE** ppbBuffer
) = 0;
Параметры
cbNewBuffer
[IN] Объект DWORD
, содержащий количество выделенных байтов.
cbBytesToCopy
[IN] Объект DWORD
, содержащий количество байтов для копирования в ppbBuffer
новый буфер.
ppbBuffer
[IN] [OUT] Указатель на BYTE
массив, содержащий новый буфер.
Возвращаемое значение
Объект HRESULT
. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Значение | Определение |
---|---|
S_OK | Указывает, что операция выполнена успешно. |
E_INVALIDARG | Указывает, что cbBytesToCopy больше cbNewBuffer . |
E_OUTOFMEMORY | Указывает, что память кучи исчерпана. |
Комментарии
Производные классы CGlobalModule, которые регистрируются для событий GL_RSCA_QUERY, получают указатель IGlobalRscaQueryProvider в качестве параметра в методе CGlobalModule::OnGlobalRSCAQueryvirtual
. Затем можно изменить размер текущего BYTE
массива, вызвав ResizeOutputBuffer
метод для указателя IGlobalRSCAQueryProvider
.
Возвращаемое ResizeOutputBuffer
значение зависит от реализации. В качестве руководства следует использовать следующие сведения, но они могут быть неправильными во всех сценариях:
Реализующий IGlobalRSCAQueryProvider
объект объявляет private``BYTE
указатель в качестве переменной-члена с именем buffer
; при создании реализует инициализирует buffer
значение NULL. cbBytesToCopy
Если параметр больше, чем параметр при ResizeOutputBuffer
вызове cbNewBuffer
, ResizeOutputBuffer
немедленно возвращает E_INVALIDARG. В противном случае вызывается функция LocalAlloc для создания нового буфера размера cbNewBuffer
, а содержимое ppbBuffer
параметра (до длины cbBytesToCopy
) копируется в этот новый буфер. Затем вызывается функция LocalFree для удаления частного буфера, который переназначается новому буферу. Затем private
буфер возвращается в параметре разыменования ppbBuffer
, если ResizeOutputBuffer
возвращает S_OK.
Важно Этот метод является частью инфраструктуры IIS 7 и не предназначен для использования непосредственно из кода.
Примечания для разработчиков
IGlobalRSCAQueryProvider
разработчики отвечают за управление памятью с помощью этих данных; Поэтому разработчики, использующие динамическое выделение памяти, IGlobalRSCAQueryProvider
должны освобождать или вызывать BYTE
delete
указатель, когда он больше не нужен.
Примечания для вызывающих абонентов
IGlobalRSCAQueryProvider
разработчики отвечают за управление памятью с помощью этих данных; IGlobalRSCAQueryProvider
Поэтому клиенты не должны освобождать или вызывать delete
возвращаемый BYTE
указатель, если эти данные больше не нужны.
Требования
Тип | Описание |
---|---|
клиент | — IIS 7.0 в Windows Vista — IIS 7.5 в Windows 7 — IIS 8.0 в Windows 8 — IIS 10.0 в Windows 10 |
Сервер | — IIS 7.0 в Windows Server 2008 — IIS 7.5 в Windows Server 2008 R2 — IIS 8.0 в Windows Server 2012 — IIS 8.5 в Windows Server 2012 R2 — IIS 10.0 в Windows Server 2016 |
Продукт | — 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 |
Заголовок | Httpserv.h |
См. также:
Интерфейс IGlobalRSCAQueryProvider
Метод IGlobalRSCAQueryProvider::GetOutputBuffer
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по