Condividi tramite


Metodo IGlobalRSCAQueryProvider::ResizeOutputBuffer

Ridimensiona e restituisce la matrice di output BYTE .

Sintassi

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

Parametri

cbNewBuffer
[IN] Oggetto DWORD contenente il numero di byte da allocare.

cbBytesToCopy
[IN] Oggetto DWORD contenente il numero di byte da copiare nel ppbBuffer nuovo buffer.

ppbBuffer
[IN] [OUT] Puntatore a una BYTE matrice che contiene il nuovo buffer.

Valore restituito

Oggetto HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

valore Definizione
S_OK Indica che l'operazione è riuscita.
E_INVALIDARG Indica che cbBytesToCopy è maggiore di cbNewBuffer.
E_OUTOFMEMORY Indica che la memoria dell'heap è esaurita.

Commenti

Le classi derivate CGlobalModule che si registrano per gli eventi GL_RSCA_QUERY ricevono un puntatore IGlobalRscaQueryProvider come parametro nel metodo CGlobalModule::OnGlobalRSCAQueryvirtual. È quindi possibile ridimensionare una matrice corrente BYTE chiamando il ResizeOutputBuffer metodo sul IGlobalRSCAQueryProvider puntatore.

Il ResizeOutputBuffer valore restituito dipende dall'implementazione. È consigliabile usare le informazioni seguenti come linea guida, ma potrebbe non essere corretta in tutti gli scenari:

L'implementatore IGlobalRSCAQueryProvider dichiara un private``BYTE puntatore come variabile membro denominata buffer; l'implementatore inizializza buffer su NULL in fase di costruzione. Se il cbBytesToCopy parametro è maggiore del cbNewBuffer parametro quando ResizeOutputBuffer viene chiamato, ResizeOutputBuffer restituisce immediatamente E_INVALIDARG. In caso contrario, la funzione LocalAlloc viene chiamata per creare un nuovo buffer di dimensioni cbNewBuffere il contenuto del ppbBuffer parametro (fino alla lunghezza di cbBytesToCopy) vengono copiati in questo nuovo buffer. La funzione LocalFree viene quindi chiamata per eliminare il buffer privato, che viene riassegnato al nuovo buffer. Il private buffer viene quindi restituito nel parametro dereferenziato ppbBuffer se ResizeOutputBuffer restituisce S_OK.

Importante Questo metodo fa parte dell'infrastruttura IIS 7 e non deve essere usato direttamente dal codice.

Note per gli implementatori

IGlobalRSCAQueryProvider gli implementatori sono responsabili della gestione della memoria con questi dati; pertanto, IGlobalRSCAQueryProvider gli implementatori che usano l'allocazione dinamica della memoria devono rilasciare o chiamare delete sul BYTE puntatore quando non è più necessario.

Note per i chiamanti

IGlobalRSCAQueryProvider gli implementatori sono responsabili della gestione della memoria con questi dati; pertanto, IGlobalRSCAQueryProvider i client non devono rilasciare o chiamare delete sul puntatore restituito BYTE quando questi dati non sono più necessari.

Requisiti

Tipo Descrizione
Client - IIS 7.0 in Windows Vista
- IIS 7.5 in Windows 7
- IIS 8.0 in Windows 8
- IIS 10.0 in Windows 10
Server - IIS 7.0 in Windows Server 2008
- IIS 7.5 in Windows Server 2008 R2
- IIS 8.0 in Windows Server 2012
- IIS 8.5 in Windows Server 2012 R2
- IIS 10.0 in Windows Server 2016
Prodotto - 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
Intestazione Httpserv.h

Vedere anche

Interfaccia IGlobalRSCAQueryProvider
Metodo IGlobalRSCAQueryProvider::GetOutputBuffer