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 | が よりcbNewBuffer 大きいことをcbBytesToCopy 示します。 |
E_OUTOFMEMORY | ヒープ メモリが不足していることを示します。 |
解説
GL_RSCA_QUERY イベントに登録する CGlobalModule 派生クラスは、CGlobalModule::OnGlobalRSCAQuery メソッドのパラメーターとして IGlobalRscaQueryProvidervirtual
ポインターを受け取ります。 その後、ポインターで メソッドを呼び出すことで、現在 BYTE
の配列の ResizeOutputBuffer
サイズを IGlobalRSCAQueryProvider
変更できます。
戻り値は ResizeOutputBuffer
実装によって異なります。 ガイドラインとして次の情報を使用する必要がありますが、すべてのシナリオで正しくない場合があります。
実装者はIGlobalRSCAQueryProvider
、 というメンバーbuffer
変数としてポインターを宣言private``BYTE
します。実装者は、構築時に NULL に初期化しますbuffer
。 がcbBytesToCopy
呼び出されたときに ResizeOutputBuffer
パラメーターが パラメーターよりcbNewBuffer
大きい場合は、ResizeOutputBuffer
すぐにE_INVALIDARGを返します。 それ以外の場合は、 LocalAlloc 関数が呼び出されてサイズ cbNewBuffer
の新しいバッファーが作成され、パラメーターの ppbBuffer
内容 (の長さ cbBytesToCopy
まで) がこの新しいバッファーにコピーされます。 LocalFree 関数が呼び出され、プライベート バッファーが破棄され、新しいバッファーに再割り当てされます。 S_OKが返された場合ResizeOutputBuffer
、バッファーはprivate
逆参照されたパラメーターで返されますppbBuffer
。
大事な このメソッドは IIS 7 インフラストラクチャの一部であり、コードから直接使用するためのものではありません。
実装側の注意
IGlobalRSCAQueryProvider
実装者は、このデータを使用したメモリ管理を担当します。したがって、IGlobalRSCAQueryProvider
動的メモリ割り当てを使用する実装者は、不要になったときにポインターをBYTE
解放または呼び出すdelete
必要があります。
呼び出し元に関する注意事項
IGlobalRSCAQueryProvider
実装者は、このデータを使用したメモリ管理を担当します。そのため、IGlobalRSCAQueryProvider
このデータが不要になった場合、クライアントは返されたBYTE
ポインターを解放したり、 を呼び出delete
したりすることはできません。
要件
Type | 説明 |
---|---|
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 |
Header | Httpserv.h |
参照
IGlobalRSCAQueryProvider インターフェイス
IGlobalRSCAQueryProvider::GetOutputBuffer メソッド