共用方式為


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 使用動態記憶體配置的實作必須釋放或呼叫 deleteBYTE 指標。

來電者的注意事項

IGlobalRSCAQueryProvider 實作者負責使用此資料的記憶體管理;因此,當不再需要此資料時, IGlobalRSCAQueryProvider 用戶端不得釋放或呼叫 deleteBYTE 回的指標。

規格需求

類型 描述
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 方法