File: Windows.Win32.HTTP_LOG_FIELDS_DATA.g.cs
Project: src\src\Shared\test\Shared.Tests\Microsoft.AspNetCore.Shared.Tests.csproj (Microsoft.AspNetCore.Shared.Tests)
// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

#pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981
using global::System;
using global::System.Diagnostics;
using global::System.Diagnostics.CodeAnalysis;
using global::System.Runtime.CompilerServices;
using global::System.Runtime.InteropServices;
using global::System.Runtime.Versioning;
using winmdroot = global::Windows.Win32;
namespace Windows.Win32
{
	namespace Networking.HttpServer
	{
		/// <summary>Used to pass the fields that are logged for an HTTP response when WC3 logging is enabled.</summary>
		/// <remarks>
		/// <para>The <b>HTTP_LOG_FIELDS_DATA</b> structure is an optional parameter (pLogData) in the <a href="https://docs.microsoft.com/windows/desktop/api/http/nf-http-httpsendresponseentitybody">HttpSendResponseEntityBody</a> and <a href="https://docs.microsoft.com/windows/desktop/api/http/nf-http-httpsendhttpresponse">HttpSendHttpResponse</a> functions starting with the HTTP version 2.0 API. The <b>HTTP_LOG_FIELDS_DATA</b> structure specifies which fields are logged in the response. Unless this structure is passed, the response will not be logged, even when the server logging property is set on a URL group or  a server session. Requests will not be logged unless the application passes the <b>HTTP_LOG_FIELDS_DATA</b> structure with each response and the logging property is set on the server session or URL Group. Most of the fields in the <b>HTTP_LOG_FIELDS_DATA</b> structure can be initialized from the corresponding field in the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/legacy/aa364545(v=vs.85)">HTTP_REQUEST</a> structure, however, some of the log fields are only known to the application; for example, Win32Status and SubStatus. This structure enables applications to alter the fields that are logged. The application passes a <b>NULL</b> pointer and a zero length for the corresponding member to disable logging for that field. Applications must provide the <b>HTTP_LOG_FIELDS_DATA</b> structure with the last send call.  If a response is sent with a single call to <a href="https://docs.microsoft.com/windows/desktop/api/http/nf-http-httpsendhttpresponse">HttpSendHttpResponse</a>, the log data must be provided in this call. If the response is sent over multiple send calls, the data must be provided with the last call to <a href="https://docs.microsoft.com/windows/desktop/api/http/nf-http-httpsendresponseentitybody">HttpSendResponseEntityBody</a>.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_log_fields_data#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.46-beta+dd815b2b9b")]
		internal partial struct HTTP_LOG_FIELDS_DATA
		{
			/// <summary>Initialize this member to the <b>HttpLogDataTypeFields</b> value of the <a href="https://docs.microsoft.com/windows/desktop/api/http/ne-http-http_log_data_type">HTTP_LOG_DATA_TYPE</a> enumeration.</summary>
			internal winmdroot.Networking.HttpServer.HTTP_LOG_DATA Base;

			/// <summary>The size, in bytes, of the user name member.</summary>
			internal ushort UserNameLength;

			/// <summary>The size, in bytes, of the URI stem member.</summary>
			internal ushort UriStemLength;

			/// <summary>The size, in bytes, of the client IP address member.</summary>
			internal ushort ClientIpLength;

			/// <summary>The size, in bytes, of the server name member.</summary>
			internal ushort ServerNameLength;

			/// <summary></summary>
			internal ushort ServiceNameLength;

			/// <summary>The size, in bytes, of the server IP address member.</summary>
			internal ushort ServerIpLength;

			/// <summary>The size, in bytes, of the HTTP method member.</summary>
			internal ushort MethodLength;

			/// <summary>The size, in bytes, of the URI query member.</summary>
			internal ushort UriQueryLength;

			/// <summary>The size, in bytes, of the host name member.</summary>
			internal ushort HostLength;

			/// <summary>The size, in bytes, of the user agent member.</summary>
			internal ushort UserAgentLength;

			/// <summary>The size, in bytes, of the cookie member.</summary>
			internal ushort CookieLength;

			/// <summary>The size, in bytes, of the referrer member.</summary>
			internal ushort ReferrerLength;

			/// <summary>The name of the  user.</summary>
			internal winmdroot.Foundation.PWSTR UserName;

			/// <summary>The URI stem.</summary>
			internal winmdroot.Foundation.PWSTR UriStem;

			/// <summary>The IP address of the client.</summary>
			internal winmdroot.Foundation.PSTR ClientIp;

			/// <summary>The name of the server.</summary>
			internal winmdroot.Foundation.PSTR ServerName;

			/// <summary>The name of the service.</summary>
			internal winmdroot.Foundation.PSTR ServiceName;

			/// <summary>The IP address of the server.</summary>
			internal winmdroot.Foundation.PSTR ServerIp;

			/// <summary>The HTTP method.</summary>
			internal winmdroot.Foundation.PSTR Method;

			/// <summary>The URI query.</summary>
			internal winmdroot.Foundation.PSTR UriQuery;

			/// <summary>The host information from the request.</summary>
			internal winmdroot.Foundation.PSTR Host;

			/// <summary>The user agent name.</summary>
			internal winmdroot.Foundation.PSTR UserAgent;

			/// <summary>The cookie provided by the application.</summary>
			internal winmdroot.Foundation.PSTR Cookie;

			/// <summary>The referrer.</summary>
			internal winmdroot.Foundation.PSTR Referrer;

			/// <summary>The port for the server.</summary>
			internal ushort ServerPort;

			/// <summary>The protocol status.</summary>
			internal ushort ProtocolStatus;

			/// <summary>The win32 status.</summary>
			internal uint Win32Status;

			/// <summary>The method number.</summary>
			internal winmdroot.Networking.HttpServer.HTTP_VERB MethodNum;

			/// <summary>The sub status.</summary>
			internal ushort SubStatus;
		}
	}
}