Partager via


IGlobalRSCAQueryProvider::ResizeOutputBuffer, méthode

Redimensionne et retourne le tableau de sortie BYTE .

Syntaxe

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

Paramètres

cbNewBuffer
[IN] DWORD qui contient le nombre d’octets à allouer.

cbBytesToCopy
[IN] DWORD qui contient le nombre d’octets à partir duquel ppbBuffer copier dans la nouvelle mémoire tampon.

ppbBuffer
[IN] [OUT] Pointeur vers un BYTE tableau qui contient la nouvelle mémoire tampon.

Valeur renvoyée

Élément HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Valeur Définition
S_OK Indique que l’opération a réussi.
E_INVALIDARG Indique que cbBytesToCopy est supérieur à cbNewBuffer.
E_OUTOFMEMORY Indique que la mémoire du tas est épuisée.

Remarques

Les classes dérivées de CGlobalModule qui s’inscrivent à des événements GL_RSCA_QUERY reçoivent un pointeur IGlobalRscaQueryProvider en tant que paramètre sur la méthode CGlobalModule::OnGlobalRSCAQueryvirtual. Vous pouvez ensuite redimensionner un tableau actuel BYTE en appelant la ResizeOutputBuffer méthode sur le IGlobalRSCAQueryProvider pointeur.

La ResizeOutputBuffer valeur de retour dépend de l’implémentation. Vous devez utiliser les informations suivantes comme ligne directrice, mais elles peuvent ne pas être correctes dans tous les scénarios :

L’implémenteur IGlobalRSCAQueryProvider déclare un private``BYTE pointeur en tant que variable membre appelée buffer; l’implémenteur s’initialise buffer sur NULL au moment de la construction. Si le cbBytesToCopy paramètre est supérieur au cbNewBuffer paramètre quand ResizeOutputBuffer est appelé, ResizeOutputBuffer retourne immédiatement E_INVALIDARG. Sinon, la fonction LocalAlloc est appelée pour créer une mémoire tampon de taille cbNewBuffer, et le contenu du ppbBuffer paramètre (jusqu’à la longueur de cbBytesToCopy) est copié dans cette nouvelle mémoire tampon. La fonction LocalFree est ensuite appelée pour supprimer la mémoire tampon privée, qui est réaffectée à la nouvelle mémoire tampon. La private mémoire tampon est ensuite retournée dans le paramètre déréférencement si ppbBufferResizeOutputBuffer retourne S_OK.

Important Cette méthode fait partie de l’infrastructure IIS 7 et n’est pas destinée à être utilisée directement à partir de votre code.

Remarques pour les implémenteurs

IGlobalRSCAQueryProvider les implémenteurs sont responsables de la gestion de la mémoire avec ces données ; par conséquent, IGlobalRSCAQueryProvider les implémenteurs qui utilisent l’allocation de mémoire dynamique doivent libérer ou appeler delete le BYTE pointeur lorsqu’il n’est plus nécessaire.

Remarques pour les appelants

IGlobalRSCAQueryProvider les implémenteurs sont responsables de la gestion de la mémoire avec ces données ; par conséquent, IGlobalRSCAQueryProvider les clients ne doivent pas libérer ou appeler delete le pointeur retourné BYTE lorsque ces données ne sont plus nécessaires.

Spécifications

Type Description
Client - IIS 7.0 sur Windows Vista
- IIS 7.5 sur Windows 7
- IIS 8.0 sur Windows 8
- IIS 10.0 sur Windows 10
Serveur - IIS 7.0 sur Windows Server 2008
- IIS 7.5 sur Windows Server 2008 R2
- IIS 8.0 sur Windows Server 2012
- IIS 8.5 sur Windows Server 2012 R2
- IIS 10.0 sur Windows Server 2016
Produit - 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
En-tête Httpserv.h

Voir aussi

IGlobalRSCAQueryProvider, interface
IGlobalRSCAQueryProvider::GetOutputBuffer, méthode