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 cbNewBuffer ist. |
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 cbNewBuffer
zu 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
IGlobalRSCAQueryProvider
Implementierer 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
IGlobalRSCAQueryProvider
Implementierer 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