Freigeben über


IGlobalRSCAQueryProvider::ResizeOutputBuffer-Methode

Ändert die Größe und gibt das Ausgabearray BYTE zurück.

Syntax

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

Parameter

cbNewBuffer
[IN] Ein DWORD , der die Anzahl der zuzuordnenden Bytes enthält.

cbBytesToCopy
[IN] Eine DWORD , die die Anzahl der Bytes enthält, aus ppbBuffer denen in den neuen Puffer kopiert werden soll.

ppbBuffer
[IN] [OUT] Ein Zeiger auf ein BYTE Array, das den neuen Puffer enthält.

Rückgabewert

HRESULT. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Wert Definition
S_OK Gibt an, dass der Vorgang erfolgreich war.
E_INVALIDARG Gibt an, dass cbBytesToCopy größer als cbNewBufferist.
E_OUTOFMEMORY Gibt an, dass der Heapspeicher erschöpft ist.

Bemerkungen

Von CGlobalModule abgeleitete Klassen, die sich für GL_RSCA_QUERY Ereignisse registrieren, erhalten einen IGlobalRscaQueryProvider-Zeiger als Parameter für die CGlobalModule::OnGlobalRSCAQuery-Methodevirtual . Anschließend können Sie die Größe eines aktuellen BYTE Arrays ändern, indem Sie die ResizeOutputBuffer -Methode auf dem IGlobalRSCAQueryProvider Zeiger aufrufen.

Der ResizeOutputBuffer Rückgabewert hängt von der Implementierung ab. Sie sollten die folgenden Informationen als Richtlinie verwenden, aber möglicherweise nicht in allen Szenarien richtig:

Der IGlobalRSCAQueryProvider Implementierer deklariert einen private``BYTE Zeiger als Membervariablen namens buffer. Der Implementierer initialisiert buffer bei der Konstruktion auf NULL. Wenn der cbBytesToCopy Parameter größer als der -Parameter ist, wenn ResizeOutputBuffer aufgerufen cbNewBuffer wird, ResizeOutputBuffer gibt sofort E_INVALIDARG zurück. Andernfalls wird die LocalAlloc-Funktion aufgerufen, um einen neuen Puffer der Größe cbNewBufferzu erstellen, und der Inhalt des ppbBuffer Parameters (bis zur Länge von cbBytesToCopy) wird in diesen neuen Puffer kopiert. Die LocalFree-Funktion wird dann aufgerufen, um den privaten Puffer zu entfernen, der dem neuen Puffer neu zugewiesen wird. Der private Puffer wird dann im abgeleiteten ppbBuffer Parameter zurückgegeben, wenn ResizeOutputBuffer S_OK zurückgegeben wird.

Wichtig Diese Methode ist Teil der IIS 7-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.

Hinweise für Implementierer

IGlobalRSCAQueryProviderImplementierer sind für die Speicherverwaltung mit diesen Daten verantwortlich; Daher müssen Implementierer, die die dynamische Speicherzuordnung verwenden, IGlobalRSCAQueryProvider den BYTE Zeiger freigeben oder aufrufendelete, wenn er nicht mehr benötigt wird.

Hinweise für Aufrufer

IGlobalRSCAQueryProviderImplementierer sind für die Speicherverwaltung mit diesen Daten verantwortlich; IGlobalRSCAQueryProvider Daher dürfen Clients den zurückgegebenen BYTE Zeiger nicht freigeben oder aufrufendelete, wenn diese Daten nicht mehr benötigt werden.

Anforderungen

type BESCHREIBUNG
Client – IIS 7.0 unter Windows Vista
– IIS 7.5 unter Windows 7
– IIS 8.0 unter Windows 8
– IIS 10.0 auf Windows 10
Server – IIS 7.0 unter Windows Server 2008
– IIS 7.5 unter Windows Server 2008 R2
– IIS 8.0 unter Windows Server 2012
– IIS 8.5 unter Windows Server 2012 R2
– IIS 10.0 auf Windows Server 2016
Produkt – 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

Weitere Informationen

IGlobalRSCAQueryProvider-Schnittstelle
IGlobalRSCAQueryProvider::GetOutputBuffer-Methode