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 | 表示堆積記憶體已耗盡。 |
備註
註冊GL_RSCA_QUERY事件的CGlobalModule衍生類別會接收IGlobalRscaQueryProvider指標做為CGlobalModule::OnGlobalRSCAQueryvirtual
方法上的參數。 然後,您可以在指標上 IGlobalRSCAQueryProvider
呼叫 方法, ResizeOutputBuffer
以調整目前 BYTE
陣列的大小。
傳 ResizeOutputBuffer
回值取決於實作。 您應該使用下列資訊作為指導方針,但在所有案例中可能都不正確:
實 IGlobalRSCAQueryProvider
作者會將 private``BYTE
指標宣告為名為 buffer
的成員變數;實作者會在 buffer
建構時初始化為 Null。 cbBytesToCopy
如果呼叫 時 ResizeOutputBuffer
參數大於 cbNewBuffer
參數, ResizeOutputBuffer
請立即傳回E_INVALIDARG。 否則,會呼叫 LocalAlloc 函式來建立大小 cbNewBuffer
的新緩衝區,而參數的內容 ppbBuffer
(最多) 的長度 cbBytesToCopy
會複製到這個新的緩衝區。 接著會呼叫 LocalFree 函式來處置私用緩衝區,這會重新指派給新的緩衝區。 private
如果 ResizeOutputBuffer
傳回S_OK,則會在取 ppbBuffer
值參數中傳回緩衝區。
重要 此方法是 IIS 7 基礎結構的一部分,不適合直接從您的程式碼使用。
實作者的注意事項
IGlobalRSCAQueryProvider
實作者負責使用此資料的記憶體管理;因此,當不再需要動態記憶體配置時, IGlobalRSCAQueryProvider
使用動態記憶體配置的實作必須釋放或呼叫 delete
BYTE
指標。
來電者的注意事項
IGlobalRSCAQueryProvider
實作者負責使用此資料的記憶體管理;因此,當不再需要此資料時, IGlobalRSCAQueryProvider
用戶端不得釋放或呼叫 delete
傳 BYTE
回的指標。
規格需求
類型 | 描述 |
---|---|
Client | - Windows Vista 上的 IIS 7.0 - Windows 7 上的 IIS 7.5 - Windows 8 上的 IIS 8.0 - Windows 10上的 IIS 10.0 |
伺服器 | - Windows Server 2008 上的 IIS 7.0 - Windows Server 2008 R2 上的 IIS 7.5 - Windows Server 2012 上的 IIS 8.0 - Windows Server 2012 R2 上的 IIS 8.5 - Windows Server 2016上的 IIS 10.0 |
產品 | - 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 方法