File: Windows.Win32.HTTP_LOGGING_INFO.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 enable server side logging on a URL Group or on a server session.</summary>
		/// <remarks>
		/// <para>The <a href="https://docs.microsoft.com/windows/desktop/api/http/ne-http-http_server_property">HttpServerLoggingProperty</a> property sets one of four types of server side logging: HttpLoggingTypeW3C, HttpLoggingTypeIIS, HttpLoggingTypeNCSA, or HttpLoggingTypeRaw. When this property is set on a server session it functions as centralized form of logging for all of the URL groups under that server session. Requests that are routed to one of the URL groups under the server session are logged in one centralized log file. The configuration parameters for the log file are passed in the  <b>HTTP_LOGGING_INFO</b> structure in the call to   <a href="https://docs.microsoft.com/windows/desktop/api/http/nf-http-httpsetserversessionproperty">HttpSetServerSessionProperty</a>. When this property is set on a URL Group, logging is performed only on  requests that are routed to the URL Group. Log files are created when the request arrives on the URL Group or server session, they are not created when logging is configured. Applications must ensure that the directory specified in the <b>DirectoryName</b> member is unique. The log files names are based on the specified rollover type. The following table shows the naming conventions for log files. </para>
		/// <para>This doc was truncated.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#">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_LOGGING_INFO
		{
			/// <summary>The <a href="https://docs.microsoft.com/windows/desktop/api/http/ns-http-http_property_flags">HTTP_PROPERTY_FLAGS</a> structure that specifies whether the property is present.</summary>
			internal winmdroot.Networking.HttpServer.HTTP_PROPERTY_FLAGS Flags;

			/// <summary>
			/// <para>The optional logging flags change the default logging behavior. These  can be one or more of the following <a href="https://docs.microsoft.com/windows/desktop/Http/http-logging-flag--constants">HTTP_LOGGING_FLAG</a> values: </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal uint LoggingFlags;

			/// <summary>The optional software name string used in W3C type logging. This name is not used for other types of logging. If this parameter is <b>NULL</b>, the HTTP Server API logs a default string.</summary>
			internal winmdroot.Foundation.PCWSTR SoftwareName;

			/// <summary>
			/// <para>The length, in bytes, of the software name. The length cannot be greater than <b>MAX_PATH</b>. If the <b>SoftwareName</b> member is <b>NULL</b>, this length must be zero.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal ushort SoftwareNameLength;

			/// <summary>The length, in bytes, of the directory name. The length cannot be greater than 424  bytes.</summary>
			internal ushort DirectoryNameLength;

			/// <summary>
			/// <para>The logging directory under which the log files are created. The directory string must be a fully qualified path including the drive letter. Applications can use a UNC path to a remote machine to enable UNC logging.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal winmdroot.Foundation.PCWSTR DirectoryName;

			/// <summary>
			/// <para>A member of the <a href="https://docs.microsoft.com/windows/desktop/api/http/ne-http-http_logging_type">HTTP_LOGGING_TYPE</a> enumeration specifying one of the following log file formats. </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal winmdroot.Networking.HttpServer.HTTP_LOGGING_TYPE Format;

			/// <summary>
			/// <para>The fields that are logged when the format is set to W3C. These  can be one or more of the <a href="https://docs.microsoft.com/windows/desktop/Http/http-log-field--constants">HTTP_LOG_FIELD_ Constants</a> values. When the logging format is W3C is , applications must specify the log fields otherwise no fields are logged.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal uint Fields;

			/// <summary>Reserved. Set to 0 (zero) or <b>NULL</b>.</summary>
			internal unsafe void* pExtFields;

			/// <summary>Reserved. Set to 0 (zero) or <b>NULL</b>.</summary>
			internal ushort NumOfExtFields;

			/// <summary>Reserved. Set to 0 (zero) or <b>NULL</b>.</summary>
			internal ushort MaxRecordSize;

			/// <summary>
			/// <para>One of the following members of the <a href="https://docs.microsoft.com/windows/desktop/api/http/ne-http-http_logging_rollover_type">HTTP_LOGGING_ROLLOVER_TYPE</a> enumeration specifying the criteria for log file rollover. </para>
			/// <para>This doc was truncated.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal winmdroot.Networking.HttpServer.HTTP_LOGGING_ROLLOVER_TYPE RolloverType;

			/// <summary>
			/// <para>The maximum size, in bytes, after which the log files is rolled over. A value of <b>HTTP_LIMIT_INFINITE</b> indicates an unlimited size. The minimum value cannot be smaller than <b>HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE</b> (1024 * 1024). This field is used only for <b>HttpLoggingRolloverSize</b> rollover type and should be set to zero for all other types. When rollover type is <b>HttpLoggingRolloverSize</b>, applications must specify the maximum size for the log file.</para>
			/// <para><see href="https://learn.microsoft.com/windows/win32/api/http/ns-http-http_logging_info#members">Read more on docs.microsoft.com</see>.</para>
			/// </summary>
			internal uint RolloverSize;

			/// <summary>The security descriptor that is applied to the log files directory and all sub-directories. If this member is <b>NULL</b>, either the system default ACL is used or the ACL is inherited from the parent directory.</summary>
			internal winmdroot.Security.PSECURITY_DESCRIPTOR pSecurityDescriptor;
		}
	}
}