Bagikan melalui


Metode IGlobalRSCAQueryProvider::ResizeOutputBuffer

Mengubah ukuran dan mengembalikan array output BYTE .

Sintaks

virtual HRESULT ResizeOutputBuffer(  
   DWORD cbNewBuffer,  
   DWORD cbBytesToCopy,  
   IN OUT BYTE** ppbBuffer  
) = 0;  

Parameter

cbNewBuffer
[IN] DWORD yang berisi jumlah byte yang akan dialokasikan.

cbBytesToCopy
[IN] DWORD yang berisi jumlah byte untuk disalin dari ppbBuffer ke dalam buffer baru.

ppbBuffer
[IN] [OUT] Penunjuk ke BYTE array yang berisi buffer baru.

Tampilkan Nilai

Sebuah HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Nilai Definisi
S_OK Menunjukkan bahwa operasi berhasil.
E_INVALIDARG Menunjukkan bahwa cbBytesToCopy lebih besar dari cbNewBuffer.
E_OUTOFMEMORY Menunjukkan bahwa memori tumpukan habis.

Keterangan

Kelas turunan CGlobalModule yang mendaftar untuk peristiwa GL_RSCA_QUERY menerima pointer IGlobalRscaQueryProvider sebagai parameter pada metode CGlobalModule::OnGlobalRSCAQueryvirtual . Anda kemudian dapat mengubah ukuran array saat ini BYTE dengan memanggil ResizeOutputBuffer metode pada penunjuk IGlobalRSCAQueryProvider .

Nilai ResizeOutputBuffer yang dikembalikan tergantung pada implementasi. Anda harus menggunakan informasi berikut sebagai pedoman, tetapi mungkin tidak benar dalam semua skenario:

Pelaksana IGlobalRSCAQueryProviderprivate``BYTE menyatakan pointer sebagai variabel anggota yang disebut buffer; pelaksana buffer menginisialisasi ke NULL saat konstruksi. cbBytesToCopy Jika parameter lebih besar dari cbNewBuffer parameter saat ResizeOutputBuffer dipanggil, ResizeOutputBuffer segera mengembalikan E_INVALIDARG. Jika tidak, fungsi LocalAlloc dipanggil untuk membuat buffer baru berukuran cbNewBuffer, dan konten ppbBuffer parameter (hingga panjang cbBytesToCopy) disalin ke dalam buffer baru ini. Fungsi LocalFree kemudian dipanggil untuk membuang buffer privat, yang ditetapkan kembali ke buffer baru. private Buffer kemudian dikembalikan dalam parameter dereferensi ppbBuffer jika ResizeOutputBuffer mengembalikan S_OK.

Penting Metode ini adalah bagian dari infrastruktur IIS 7 dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Catatan untuk Pelaksana

IGlobalRSCAQueryProvider pelaksana bertanggung jawab atas manajemen memori dengan data ini; oleh karena itu, IGlobalRSCAQueryProvider pelaksana yang menggunakan alokasi memori dinamis harus melepaskan atau memanggil delete penunjuk BYTE ketika tidak lagi diperlukan.

Catatan untuk Penelepon

IGlobalRSCAQueryProvider pelaksana bertanggung jawab atas manajemen memori dengan data ini; oleh karena itu, IGlobalRSCAQueryProvider klien tidak boleh merilis atau memanggil delete pointer yang dikembalikan BYTE ketika data ini tidak lagi diperlukan.

Persyaratan

Jenis Deskripsi
Klien - IIS 7.0 di Windows Vista
- IIS 7.5 di Windows 7
- IIS 8.0 di Windows 8
- IIS 10.0 pada Windows 10
Server - IIS 7.0 di Windows Server 2008
- IIS 7.5 di Windows Server 2008 R2
- IIS 8.0 di Windows Server 2012
- IIS 8.5 di Windows Server 2012 R2
- IIS 10.0 di Windows Server 2016
Produk - 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

Lihat juga

Antarmuka IGlobalRSCAQueryProvider
Metode IGlobalRSCAQueryProvider::GetOutputBuffer