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 ppbBuffer
ResizeOutputBuffer
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