HttpSendResponseEntityBody-Funktion (http.h)
Die HttpSendResponseEntityBody-Funktion sendet Entitäts-Textdaten, die einer HTTP-Antwort zugeordnet sind.
Syntax
HTTPAPI_LINKAGE ULONG HttpSendResponseEntityBody(
[in] HANDLE RequestQueueHandle,
[in] HTTP_REQUEST_ID RequestId,
[in] ULONG Flags,
[in] USHORT EntityChunkCount,
[in] PHTTP_DATA_CHUNK EntityChunks,
[out] PULONG BytesSent,
[in] PVOID Reserved1,
[in] ULONG Reserved2,
[in] LPOVERLAPPED Overlapped,
[in, optional] PHTTP_LOG_DATA LogData
);
Parameter
[in] RequestQueueHandle
Ein Handle für die Anforderungswarteschlange, aus der die angegebene Anforderung abgerufen wurde. Eine Anforderungswarteschlange wird erstellt, und ihr Handle wird durch einen Aufruf der HttpCreateRequestQueue-Funktion zurückgegeben.
Windows Server 2003 mit SP1 und Windows XP mit SP2: Das Handle für die Anforderungswarteschlange wird von der HttpCreateHttpHandle-Funktion erstellt.
[in] RequestId
Ein Bezeichner der HTTP-Anforderung, der diese Antwort entspricht. Dieser Wert wird im RequestId-Member der HTTP_REQUEST-Struktur durch einen Aufruf der HttpReceiveHttpRequest-Funktion zurückgegeben. Sie kann nicht HTTP_NULL_ID werden.
[in] Flags
Ein Parameter, der einen der folgenden sich gegenseitig ausschließenden Flagwerte enthalten kann.
Flags | Bedeutung |
---|---|
|
Die Netzwerkverbindung sollte nach dem Senden dieser Antwort getrennt werden, wobei alle features für persistente Verbindungen überschrieben werden, die der verwendeten HTTP-Version zugeordnet sind. Anwendungen sollten dieses Flag verwenden, um das Ende der Entität in Fällen anzugeben, in denen weder die Inhaltslänge noch die blockierte Codierung verwendet wird. |
|
Zusätzliche Entitätstextdaten für diese Antwort werden von der Anwendung über einen oder mehrere nachfolgende Aufrufe von HttpSendResponseEntityBody gesendet. Beim letzten Aufruf wird dieses Flag dann auf 0 festgelegt. |
|
Dieses Flag ermöglicht das Puffern von Daten im Kernel auf Antwortbasis.
Sie sollte von einer Anwendung verwendet werden, die synchrone E/A-Vorgänge durchführt, oder von einer Anwendung, die asynchrone E/A-Vorgänge ausführt, wobei nicht mehr als eine ausstehende Sendezeit gleichzeitig gesendet wird. Anwendungen, die asynchrone E/A-Vorgänge verwenden, bei denen möglicherweise mehrere ausstehende Sendevorgänge gleichzeitig vorhanden sind, sollten dieses Flag nicht verwenden. Wenn dieses Flag festgelegt ist, sollte es auch in Aufrufen der HttpSendHttpResponse-Funktion konsistent verwendet werden. Windows Server 2003: Dieses Flag wird nicht unterstützt. Dieses Flag ist neu für Windows Server 2003 mit SP1. |
|
Aktiviert den TCP-Nagling-Algorithmus nur für diesen Sendevorgang.
Windows Vista und höher: Dieses Flag wird nicht unterstützt. |
|
Gibt an, dass für eine Bereichsanforderung der vollständige Antwortinhalt übergeben wird und der Aufrufer möchte, dass die HTTP-API Bereiche entsprechend verarbeitet.
Hinweis Dieses Flag wird nur für Antworten auf HTTP GET-Anforderungen unterstützt und bietet eine begrenzte Teilmenge von Funktionen. Anwendungen, die eine Vollständige Bereichsverarbeitung erfordern, sollten diese im Benutzermodus ausführen und sich nicht auf HTTP.sys verlassen. Von der Verwendung wird abgeraten.
Hinweis Dieses Flag wird unterstützt. |
|
Gibt an, dass die Anforderung/Antwort nicht HTTP-konform ist und alle nachfolgenden Bytes als Entitätstext behandelt werden sollen. Anwendungen geben dieses Flag an, wenn sie eine Web Socket-Upgradeanforderung akzeptiert und HTTP.sys informiert, die Verbindungsdaten als undurchsichtige Daten zu behandeln.
Dieses Flag ist nur zulässig, wenn das StatusCode-Element von pHttpResponse101 ist und protokolle wechselt. HttpSendResponseEntityBody gibt ERROR_INVALID_PARAMETER für alle anderen HTTP-Antworttypen zurück, wenn dieses Flag verwendet wird. Windows 8 und höher: Dieses Flag wird unterstützt. |
[in] EntityChunkCount
Eine Reihe von Strukturen im Array, auf die von pEntityChunks verwiesen wird. Dieser Wert darf 9999 nicht überschreiten.
[in] EntityChunks
Ein Zeiger auf ein Array von HTTP_DATA_CHUNK Strukturen, die als Entitätskörperdaten gesendet werden sollen.
[out] BytesSent
Optional. Ein Zeiger auf eine Variable, die die Zahl in Bytes empfängt, die gesendet wird, wenn die Funktion synchron arbeitet.
Legen Sie bei einem asynchronen Aufruf mit pOverlappedpBytesSent auf NULL fest. Andernfalls muss pBytesSent eine gültige Speicheradresse enthalten und nicht auf NULL festgelegt werden, wenn pOverlapped auf NULL festgelegt ist.
[in] Reserved1
Dieser Parameter ist reserviert und muss NULL sein.
[in] Reserved2
Dieser Parameter ist reserviert und muss null sein.
[in] Overlapped
Legen Sie bei asynchronen Aufrufen pOverlapped so fest, dass er auf eine OVERLAPPED-Struktur verweist. Legen Sie für synchrone Aufrufe auf NULL fest.
Ein synchroner Aufruf blockiert, bis alle im pEntityChunks-Parameter angegebenen Antwortdaten gesendet werden, während ein asynchroner Aufruf sofort ERROR_IO_PENDING zurückgibt und die aufrufende Anwendung dann GetOverlappedResult - oder E/A-Vervollständigungsports verwendet, um zu bestimmen, wann der Vorgang abgeschlossen ist. Weitere Informationen zur Verwendung von OVERLAPPED-Strukturen für die Synchronisierung finden Sie unter Synchronisierung und überlappende Eingabe und Ausgabe.
[in, optional] LogData
Ein Zeiger auf die HTTP_LOG_DATA Struktur, die zum Protokollieren der Antwort verwendet wird. Übergeben Sie einen Zeiger an die HTTP_LOG_FIELDS_DATA-Struktur , und wandeln Sie ihn in PHTTP_LOG_DATA um.
Beachten Sie, dass selbst wenn die Protokollierung für eine URL-Gruppe oder Serversitzung aktiviert ist, die Antwort nur protokolliert wird, wenn die Anwendung die Datenstruktur der Protokollfelder bereitstellt.
Windows Server 2003 und Windows XP mit SP2: Dieser Parameter ist reserviert und muss NULL sein.
Windows Vista und Windows Server 2008: Dieser Parameter ist neu für Windows Vista und Windows Server 2008.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.
Wenn die Funktion asynchron verwendet wird, gibt der Rückgabewert ERROR_IO_PENDING an, dass die nächste Anforderung noch nicht bereit ist und später über normale überlappende E/A-Vervollständigungsmechanismen abgerufen wird.
Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.
Wert | Bedeutung |
---|---|
|
Mindestens einer der angegebenen Parameter ist in einer nicht verwendbaren Form. |
|
Es steht ein Aufruf von HttpSendHttpResponse oder HttpSendResponseEntityBody mit derselben RequestId aus. |
|
Ein in WinError.h definierter Systemfehlercode . |
Hinweise
Wenn weder ein Content-Length-Header noch ein Transfercodierungsheader in den Antwortheadern enthalten ist, muss die Anwendung das Ende der Antwort angeben, indem sie die Verbindung mithilfe des flags HTTP_SEND_RESPONSE_DISCONNECT explizit schließt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP mit SP2 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | http.h |
Bibliothek | Httpapi.lib |
DLL | Httpapi.dll |