using System;

// namespace System.RemoteManagement
namespace Win32
{
	extension Win32
	{
		// --- Constants ---
		
		public const uint32 WSMAN_FLAG_REQUESTED_API_VERSION_1_0 = 0;
		public const uint32 WSMAN_FLAG_REQUESTED_API_VERSION_1_1 = 1;
		public const uint32 WSMAN_OPERATION_INFOV1 = 0;
		public const uint32 WSMAN_OPERATION_INFOV2 = 2864434397;
		public const uint32 WSMAN_DEFAULT_TIMEOUT_MS = 60000;
		public const uint32 WSMAN_FLAG_RECEIVE_RESULT_NO_MORE_DATA = 1;
		public const uint32 WSMAN_FLAG_RECEIVE_FLUSH = 2;
		public const uint32 WSMAN_FLAG_RECEIVE_RESULT_DATA_BOUNDARY = 4;
		public const uint32 WSMAN_PLUGIN_PARAMS_MAX_ENVELOPE_SIZE = 1;
		public const uint32 WSMAN_PLUGIN_PARAMS_TIMEOUT = 2;
		public const uint32 WSMAN_PLUGIN_PARAMS_REMAINING_RESULT_SIZE = 3;
		public const uint32 WSMAN_PLUGIN_PARAMS_LARGEST_RESULT_SIZE = 4;
		public const uint32 WSMAN_PLUGIN_PARAMS_GET_REQUESTED_LOCALE = 5;
		public const uint32 WSMAN_PLUGIN_PARAMS_GET_REQUESTED_DATA_LOCALE = 6;
		public const uint32 WSMAN_PLUGIN_PARAMS_SHAREDHOST = 1;
		public const uint32 WSMAN_PLUGIN_PARAMS_RUNAS_USER = 2;
		public const uint32 WSMAN_PLUGIN_PARAMS_AUTORESTART = 3;
		public const uint32 WSMAN_PLUGIN_PARAMS_HOSTIDLETIMEOUTSECONDS = 4;
		public const uint32 WSMAN_PLUGIN_PARAMS_NAME = 5;
		public const uint32 WSMAN_PLUGIN_STARTUP_REQUEST_RECEIVED = 0;
		public const uint32 WSMAN_PLUGIN_STARTUP_AUTORESTARTED_REBOOT = 1;
		public const uint32 WSMAN_PLUGIN_STARTUP_AUTORESTARTED_CRASH = 2;
		public const uint32 WSMAN_PLUGIN_SHUTDOWN_SYSTEM = 1;
		public const uint32 WSMAN_PLUGIN_SHUTDOWN_SERVICE = 2;
		public const uint32 WSMAN_PLUGIN_SHUTDOWN_IISHOST = 3;
		public const uint32 WSMAN_PLUGIN_SHUTDOWN_IDLETIMEOUT_ELAPSED = 4;
		public const uint32 WSMAN_FLAG_SEND_NO_MORE_DATA = 1;
		public const uint32 ERROR_WSMAN_RESOURCE_NOT_FOUND = 2150858752;
		public const uint32 ERROR_WSMAN_INVALID_ACTIONURI = 2150858753;
		public const uint32 ERROR_WSMAN_INVALID_URI = 2150858754;
		public const uint32 ERROR_WSMAN_PROVIDER_FAILURE = 2150858755;
		public const uint32 ERROR_WSMAN_BATCH_COMPLETE = 2150858756;
		public const uint32 ERROR_WSMAN_CONFIG_CORRUPTED = 2150858757;
		public const uint32 ERROR_WSMAN_PULL_IN_PROGRESS = 2150858758;
		public const uint32 ERROR_WSMAN_ENUMERATION_CLOSED = 2150858759;
		public const uint32 ERROR_WSMAN_SUBSCRIPTION_CLOSED = 2150858760;
		public const uint32 ERROR_WSMAN_SUBSCRIPTION_CLOSE_IN_PROGRESS = 2150858761;
		public const uint32 ERROR_WSMAN_SUBSCRIPTION_CLIENT_DID_NOT_CALL_WITHIN_HEARTBEAT = 2150858762;
		public const uint32 ERROR_WSMAN_SUBSCRIPTION_NO_HEARTBEAT = 2150858763;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_TIMEOUT = 2150858764;
		public const uint32 ERROR_WSMAN_SOAP_VERSION_MISMATCH = 2150858765;
		public const uint32 ERROR_WSMAN_SOAP_DATA_ENCODING_UNKNOWN = 2150858766;
		public const uint32 ERROR_WSMAN_INVALID_MESSAGE_INFORMATION_HEADER = 2150858767;
		public const uint32 ERROR_WSMAN_SOAP_FAULT_MUST_UNDERSTAND = 2150858768;
		public const uint32 ERROR_WSMAN_MESSAGE_INFORMATION_HEADER_REQUIRED = 2150858769;
		public const uint32 ERROR_WSMAN_DESTINATION_UNREACHABLE = 2150858770;
		public const uint32 ERROR_WSMAN_ACTION_NOT_SUPPORTED = 2150858771;
		public const uint32 ERROR_WSMAN_ENDPOINT_UNAVAILABLE = 2150858772;
		public const uint32 ERROR_WSMAN_INVALID_REPRESENTATION = 2150858773;
		public const uint32 ERROR_WSMAN_ENUMERATE_INVALID_EXPIRATION_TIME = 2150858774;
		public const uint32 ERROR_WSMAN_ENUMERATE_UNSUPPORTED_EXPIRATION_TIME = 2150858775;
		public const uint32 ERROR_WSMAN_ENUMERATE_FILTERING_NOT_SUPPORTED = 2150858776;
		public const uint32 ERROR_WSMAN_ENUMERATE_FILTER_DIALECT_REQUESTED_UNAVAILABLE = 2150858777;
		public const uint32 ERROR_WSMAN_ENUMERATE_CANNOT_PROCESS_FILTER = 2150858778;
		public const uint32 ERROR_WSMAN_ENUMERATE_INVALID_ENUMERATION_CONTEXT = 2150858779;
		public const uint32 ERROR_WSMAN_ENUMERATE_TIMED_OUT = 2150858780;
		public const uint32 ERROR_WSMAN_ENUMERATE_UNABLE_TO_RENEW = 2150858781;
		public const uint32 ERROR_WSMAN_EVENTING_DELIVERY_MODE_REQUESTED_UNAVAILABLE = 2150858782;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_EXPIRATION_TIME = 2150858783;
		public const uint32 ERROR_WSMAN_EVENTING_UNSUPPORTED_EXPIRATION_TYPE = 2150858784;
		public const uint32 ERROR_WSMAN_EVENTING_FILTERING_NOT_SUPPORTED = 2150858785;
		public const uint32 ERROR_WSMAN_EVENTING_FILTERING_REQUESTED_UNAVAILABLE = 2150858786;
		public const uint32 ERROR_WSMAN_EVENTING_SOURCE_UNABLE_TO_PROCESS = 2150858787;
		public const uint32 ERROR_WSMAN_EVENTING_UNABLE_TO_RENEW = 2150858788;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_MESSAGE = 2150858789;
		public const uint32 ERROR_WSMAN_ENVELOPE_TOO_LARGE = 2150858790;
		public const uint32 ERROR_WSMAN_INVALID_SOAP_BODY = 2150858791;
		public const uint32 ERROR_WSMAN_INVALID_RESUMPTION_CONTEXT = 2150858792;
		public const uint32 ERROR_WSMAN_OPERATION_TIMEDOUT = 2150858793;
		public const uint32 ERROR_WSMAN_RESUMPTION_NOT_SUPPORTED = 2150858794;
		public const uint32 ERROR_WSMAN_RESUMPTION_TYPE_NOT_SUPPORTED = 2150858795;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_ENCODING = 2150858796;
		public const uint32 ERROR_WSMAN_URI_LIMIT = 2150858797;
		public const uint32 ERROR_WSMAN_INVALID_PROPOSED_ID = 2150858798;
		public const uint32 ERROR_WSMAN_INVALID_BATCH_PARAMETER = 2150858799;
		public const uint32 ERROR_WSMAN_NO_ACK = 2150858800;
		public const uint32 ERROR_WSMAN_ACTION_MISMATCH = 2150858801;
		public const uint32 ERROR_WSMAN_CONCURRENCY = 2150858802;
		public const uint32 ERROR_WSMAN_ALREADY_EXISTS = 2150858803;
		public const uint32 ERROR_WSMAN_DELIVERY_REFUSED = 2150858804;
		public const uint32 ERROR_WSMAN_ENCODING_LIMIT = 2150858805;
		public const uint32 ERROR_WSMAN_FAILED_AUTHENTICATION = 2150858806;
		public const uint32 ERROR_WSMAN_INCOMPATIBLE_EPR = 2150858807;
		public const uint32 ERROR_WSMAN_INVALID_BOOKMARK = 2150858808;
		public const uint32 ERROR_WSMAN_INVALID_OPTIONS = 2150858809;
		public const uint32 ERROR_WSMAN_INVALID_PARAMETER = 2150858810;
		public const uint32 ERROR_WSMAN_INVALID_RESOURCE_URI = 2150858811;
		public const uint32 ERROR_WSMAN_INVALID_SYSTEM = 2150858812;
		public const uint32 ERROR_WSMAN_INVALID_SELECTORS = 2150858813;
		public const uint32 ERROR_WSMAN_METADATA_REDIRECT = 2150858814;
		public const uint32 ERROR_WSMAN_QUOTA_LIMIT = 2150858815;
		public const uint32 ERROR_WSMAN_RENAME_FAILURE = 2150858816;
		public const uint32 ERROR_WSMAN_SCHEMA_VALIDATION_ERROR = 2150858817;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_FEATURE = 2150858818;
		public const uint32 ERROR_WSMAN_INVALID_XML = 2150858819;
		public const uint32 ERROR_WSMAN_INVALID_KEY = 2150858820;
		public const uint32 ERROR_WSMAN_DELIVER_IN_PROGRESS = 2150858821;
		public const uint32 ERROR_WSMAN_SYSTEM_NOT_FOUND = 2150858822;
		public const uint32 ERROR_WSMAN_MAX_ENVELOPE_SIZE = 2150858823;
		public const uint32 ERROR_WSMAN_MAX_ENVELOPE_SIZE_EXCEEDED = 2150858824;
		public const uint32 ERROR_WSMAN_SERVER_ENVELOPE_LIMIT = 2150858825;
		public const uint32 ERROR_WSMAN_SELECTOR_LIMIT = 2150858826;
		public const uint32 ERROR_WSMAN_OPTION_LIMIT = 2150858827;
		public const uint32 ERROR_WSMAN_CHARACTER_SET = 2150858828;
		public const uint32 ERROR_WSMAN_UNREPORTABLE_SUCCESS = 2150858829;
		public const uint32 ERROR_WSMAN_WHITESPACE = 2150858830;
		public const uint32 ERROR_WSMAN_FILTERING_REQUIRED = 2150858831;
		public const uint32 ERROR_WSMAN_BOOKMARK_EXPIRED = 2150858832;
		public const uint32 ERROR_WSMAN_OPTIONS_NOT_SUPPORTED = 2150858833;
		public const uint32 ERROR_WSMAN_OPTIONS_INVALID_NAME = 2150858834;
		public const uint32 ERROR_WSMAN_OPTIONS_INVALID_VALUE = 2150858835;
		public const uint32 ERROR_WSMAN_PARAMETER_TYPE_MISMATCH = 2150858836;
		public const uint32 ERROR_WSMAN_INVALID_PARAMETER_NAME = 2150858837;
		public const uint32 ERROR_WSMAN_INVALID_XML_VALUES = 2150858838;
		public const uint32 ERROR_WSMAN_INVALID_XML_MISSING_VALUES = 2150858839;
		public const uint32 ERROR_WSMAN_INVALID_XML_NAMESPACE = 2150858840;
		public const uint32 ERROR_WSMAN_INVALID_XML_FRAGMENT = 2150858841;
		public const uint32 ERROR_WSMAN_INSUFFCIENT_SELECTORS = 2150858842;
		public const uint32 ERROR_WSMAN_UNEXPECTED_SELECTORS = 2150858843;
		public const uint32 ERROR_WSMAN_SELECTOR_TYPEMISMATCH = 2150858844;
		public const uint32 ERROR_WSMAN_INVALID_SELECTOR_VALUE = 2150858845;
		public const uint32 ERROR_WSMAN_AMBIGUOUS_SELECTORS = 2150858846;
		public const uint32 ERROR_WSMAN_DUPLICATE_SELECTORS = 2150858847;
		public const uint32 ERROR_WSMAN_INVALID_TARGET_SELECTORS = 2150858848;
		public const uint32 ERROR_WSMAN_INVALID_TARGET_RESOURCEURI = 2150858849;
		public const uint32 ERROR_WSMAN_INVALID_TARGET_SYSTEM = 2150858850;
		public const uint32 ERROR_WSMAN_TARGET_ALREADY_EXISTS = 2150858851;
		public const uint32 ERROR_WSMAN_AUTHORIZATION_MODE_NOT_SUPPORTED = 2150858852;
		public const uint32 ERROR_WSMAN_ACK_NOT_SUPPORTED = 2150858853;
		public const uint32 ERROR_WSMAN_OPERATION_TIMEOUT_NOT_SUPPORTED = 2150858854;
		public const uint32 ERROR_WSMAN_LOCALE_NOT_SUPPORTED = 2150858855;
		public const uint32 ERROR_WSMAN_EXPIRATION_TIME_NOT_SUPPORTED = 2150858856;
		public const uint32 ERROR_WSMAN_DELIVERY_RETRIES_NOT_SUPPORTED = 2150858857;
		public const uint32 ERROR_WSMAN_HEARTBEATS_NOT_SUPPORTED = 2150858858;
		public const uint32 ERROR_WSMAN_BOOKMARKS_NOT_SUPPORTED = 2150858859;
		public const uint32 ERROR_WSMAN_MAXITEMS_NOT_SUPPORTED = 2150858860;
		public const uint32 ERROR_WSMAN_MAXTIME_NOT_SUPPORTED = 2150858861;
		public const uint32 ERROR_WSMAN_MAXENVELOPE_SIZE_NOT_SUPPORTED = 2150858862;
		public const uint32 ERROR_WSMAN_MAXENVELOPE_POLICY_NOT_SUPPORTED = 2150858863;
		public const uint32 ERROR_WSMAN_FILTERING_REQUIRED_NOT_SUPPORTED = 2150858864;
		public const uint32 ERROR_WSMAN_INSECURE_ADDRESS_NOT_SUPPORTED = 2150858865;
		public const uint32 ERROR_WSMAN_FORMAT_MISMATCH_NOT_SUPPORTED = 2150858866;
		public const uint32 ERROR_WSMAN_FORMAT_SECURITY_TOKEN_NOT_SUPPORTED = 2150858867;
		public const uint32 ERROR_WSMAN_BAD_METHOD = 2150858868;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_MEDIA = 2150858869;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_ADDRESSING_MODE = 2150858870;
		public const uint32 ERROR_WSMAN_FRAGMENT_TRANSFER_NOT_SUPPORTED = 2150858871;
		public const uint32 ERROR_WSMAN_ENUMERATION_INITIALIZING = 2150858872;
		public const uint32 ERROR_WSMAN_CONNECTOR_GET = 2150858873;
		public const uint32 ERROR_WSMAN_URI_QUERY_STRING_SYNTAX_ERROR = 2150858874;
		public const uint32 ERROR_WSMAN_INEXISTENT_MAC_ADDRESS = 2150858875;
		public const uint32 ERROR_WSMAN_NO_UNICAST_ADDRESSES = 2150858876;
		public const uint32 ERROR_WSMAN_NO_DHCP_ADDRESSES = 2150858877;
		public const uint32 ERROR_WSMAN_MIN_ENVELOPE_SIZE = 2150858878;
		public const uint32 ERROR_WSMAN_EPR_NESTING_EXCEEDED = 2150858879;
		public const uint32 ERROR_WSMAN_REQUEST_INIT_ERROR = 2150858880;
		public const uint32 ERROR_WSMAN_INVALID_TIMEOUT_HEADER = 2150858881;
		public const uint32 ERROR_WSMAN_CERT_NOT_FOUND = 2150858882;
		public const uint32 ERROR_WSMAN_PLUGIN_FAILED = 2150858883;
		public const uint32 ERROR_WSMAN_ENUMERATION_INVALID = 2150858884;
		public const uint32 ERROR_WSMAN_CONFIG_CANNOT_CHANGE_MUTUAL = 2150858885;
		public const uint32 ERROR_WSMAN_ENUMERATION_MODE_UNSUPPORTED = 2150858886;
		public const uint32 ERROR_WSMAN_MUSTUNDERSTAND_ON_LOCALE_UNSUPPORTED = 2150858887;
		public const uint32 ERROR_WSMAN_POLICY_CORRUPTED = 2150858888;
		public const uint32 ERROR_WSMAN_LISTENER_ADDRESS_INVALID = 2150858889;
		public const uint32 ERROR_WSMAN_CONFIG_CANNOT_CHANGE_GPO_CONTROLLED_SETTING = 2150858890;
		public const uint32 ERROR_WSMAN_EVENTING_CONCURRENT_CLIENT_RECEIVE = 2150858891;
		public const uint32 ERROR_WSMAN_EVENTING_FAST_SENDER = 2150858892;
		public const uint32 ERROR_WSMAN_EVENTING_INSECURE_PUSHSUBSCRIPTION_CONNECTION = 2150858893;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_EVENTSOURCE = 2150858894;
		public const uint32 ERROR_WSMAN_EVENTING_NOMATCHING_LISTENER = 2150858895;
		public const uint32 ERROR_WSMAN_FRAGMENT_DIALECT_REQUESTED_UNAVAILABLE = 2150858896;
		public const uint32 ERROR_WSMAN_MISSING_FRAGMENT_PATH = 2150858897;
		public const uint32 ERROR_WSMAN_INVALID_FRAGMENT_DIALECT = 2150858898;
		public const uint32 ERROR_WSMAN_INVALID_FRAGMENT_PATH = 2150858899;
		public const uint32 ERROR_WSMAN_EVENTING_INCOMPATIBLE_BATCHPARAMS_AND_DELIVERYMODE = 2150858900;
		public const uint32 ERROR_WSMAN_EVENTING_LOOPBACK_TESTFAILED = 2150858901;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_ENDTO_ADDRESSS = 2150858902;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_INCOMING_EVENT_PACKET_HEADER = 2150858903;
		public const uint32 ERROR_WSMAN_SESSION_ALREADY_CLOSED = 2150858904;
		public const uint32 ERROR_WSMAN_SUBSCRIPTION_LISTENER_NOLONGERVALID = 2150858905;
		public const uint32 ERROR_WSMAN_PROVIDER_LOAD_FAILED = 2150858906;
		public const uint32 ERROR_WSMAN_EVENTING_SUBSCRIPTIONCLOSED_BYREMOTESERVICE = 2150858907;
		public const uint32 ERROR_WSMAN_EVENTING_DELIVERYFAILED_FROMSOURCE = 2150858908;
		public const uint32 ERROR_WSMAN_SECURITY_UNMAPPED = 2150858909;
		public const uint32 ERROR_WSMAN_EVENTING_SUBSCRIPTION_CANCELLED_BYSOURCE = 2150858910;
		public const uint32 ERROR_WSMAN_INVALID_HOSTNAME_PATTERN = 2150858911;
		public const uint32 ERROR_WSMAN_EVENTING_MISSING_NOTIFYTO = 2150858912;
		public const uint32 ERROR_WSMAN_EVENTING_MISSING_NOTIFYTO_ADDRESSS = 2150858913;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_NOTIFYTO_ADDRESSS = 2150858914;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_LOCALE_IN_DELIVERY = 2150858915;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_HEARTBEAT = 2150858916;
		public const uint32 ERROR_WSMAN_MACHINE_OPTION_REQUIRED = 2150858917;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_FEATURE_OPTIONS = 2150858918;
		public const uint32 ERROR_WSMAN_BATCHSIZE_TOO_SMALL = 2150858919;
		public const uint32 ERROR_WSMAN_EVENTING_DELIVERY_MODE_REQUESTED_INVALID = 2150858920;
		public const uint32 ERROR_WSMAN_PROVSYS_NOT_SUPPORTED = 2150858921;
		public const uint32 ERROR_WSMAN_PUSH_SUBSCRIPTION_CONFIG_INVALID = 2150858922;
		public const uint32 ERROR_WSMAN_CREDS_PASSED_WITH_NO_AUTH_FLAG = 2150858923;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_FLAG = 2150858924;
		public const uint32 ERROR_WSMAN_CLIENT_MULTIPLE_AUTH_FLAGS = 2150858925;
		public const uint32 ERROR_WSMAN_CLIENT_SPN_WRONG_AUTH = 2150858926;
		public const uint32 ERROR_WSMAN_CLIENT_CERT_UNNEEDED_CREDS = 2150858927;
		public const uint32 ERROR_WSMAN_CLIENT_USERNAME_PASSWORD_NEEDED = 2150858928;
		public const uint32 ERROR_WSMAN_CLIENT_CERT_UNNEEDED_USERNAME = 2150858929;
		public const uint32 ERROR_WSMAN_CLIENT_CREDENTIALS_NEEDED = 2150858930;
		public const uint32 ERROR_WSMAN_CLIENT_CREDENTIALS_FLAG_NEEDED = 2150858931;
		public const uint32 ERROR_WSMAN_CLIENT_CERT_NEEDED = 2150858932;
		public const uint32 ERROR_WSMAN_CLIENT_CERT_UNKNOWN_TYPE = 2150858933;
		public const uint32 ERROR_WSMAN_CLIENT_CERT_UNKNOWN_LOCATION = 2150858934;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_CERT = 2150858935;
		public const uint32 ERROR_WSMAN_CLIENT_LOCAL_INVALID_CREDS = 2150858936;
		public const uint32 ERROR_WSMAN_CLIENT_LOCAL_INVALID_CONNECTION_OPTIONS = 2150858937;
		public const uint32 ERROR_WSMAN_CLIENT_CREATESESSION_NULL_PARAM = 2150858938;
		public const uint32 ERROR_WSMAN_CLIENT_ENUMERATE_NULL_PARAM = 2150858939;
		public const uint32 ERROR_WSMAN_CLIENT_SUBSCRIBE_NULL_PARAM = 2150858940;
		public const uint32 ERROR_WSMAN_CLIENT_NULL_RESULT_PARAM = 2150858941;
		public const uint32 ERROR_WSMAN_CLIENT_NO_HANDLE = 2150858942;
		public const uint32 ERROR_WSMAN_CLIENT_BLANK_URI = 2150858943;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_RESOURCE_LOCATOR = 2150858944;
		public const uint32 ERROR_WSMAN_CLIENT_BLANK_INPUT_XML = 2150858945;
		public const uint32 ERROR_WSMAN_CLIENT_BATCH_ITEMS_TOO_SMALL = 2150858946;
		public const uint32 ERROR_WSMAN_CLIENT_MAX_CHARS_TOO_SMALL = 2150858947;
		public const uint32 ERROR_WSMAN_CLIENT_BLANK_ACTION_URI = 2150858948;
		public const uint32 ERROR_WSMAN_CLIENT_ZERO_HEARTBEAT = 2150858949;
		public const uint32 ERROR_WSMAN_CLIENT_MULTIPLE_DELIVERY_MODES = 2150858950;
		public const uint32 ERROR_WSMAN_CLIENT_MULTIPLE_ENVELOPE_POLICIES = 2150858951;
		public const uint32 ERROR_WSMAN_CLIENT_UNKNOWN_EXPIRATION_TYPE = 2150858952;
		public const uint32 ERROR_WSMAN_CLIENT_MISSING_EXPIRATION = 2150858953;
		public const uint32 ERROR_WSMAN_CLIENT_PULL_INVALID_FLAGS = 2150858954;
		public const uint32 ERROR_WSMAN_CLIENT_PUSH_UNSUPPORTED_TRANSPORT = 2150858955;
		public const uint32 ERROR_WSMAN_CLIENT_PUSH_HOST_TOO_LONG = 2150858956;
		public const uint32 ERROR_WSMAN_CLIENT_COMPRESSION_INVALID_OPTION = 2150858957;
		public const uint32 ERROR_WSMAN_CLIENT_DELIVERENDSUBSCRIPTION_NULL_PARAM = 2150858958;
		public const uint32 ERROR_WSMAN_CLIENT_DELIVEREVENTS_NULL_PARAM = 2150858959;
		public const uint32 ERROR_WSMAN_CLIENT_GETBOOKMARK_NULL_PARAM = 2150858960;
		public const uint32 ERROR_WSMAN_CLIENT_DECODEOBJECT_NULL_PARAM = 2150858961;
		public const uint32 ERROR_WSMAN_CLIENT_ENCODEOBJECT_NULL_PARAM = 2150858962;
		public const uint32 ERROR_WSMAN_CLIENT_ENUMERATORADDOBJECT_NULL_PARAM = 2150858963;
		public const uint32 ERROR_WSMAN_CLIENT_ENUMERATORNEXTOBJECT_NULL_PARAM = 2150858964;
		public const uint32 ERROR_WSMAN_CLIENT_CONSTRUCTERROR_NULL_PARAM = 2150858965;
		public const uint32 ERROR_WSMAN_SERVER_NONPULLSUBSCRIBE_NULL_PARAM = 2150858966;
		public const uint32 ERROR_WSMAN_CLIENT_UNENCRYPTED_HTTP_ONLY = 2150858967;
		public const uint32 ERROR_WSMAN_CANNOT_USE_CERTIFICATES_FOR_HTTP = 2150858968;
		public const uint32 ERROR_WSMAN_CONNECTIONSTR_INVALID = 2150858969;
		public const uint32 ERROR_WSMAN_TRANSPORT_NOT_SUPPORTED = 2150858970;
		public const uint32 ERROR_WSMAN_PORT_INVALID = 2150858971;
		public const uint32 ERROR_WSMAN_CONFIG_PORT_INVALID = 2150858972;
		public const uint32 ERROR_WSMAN_SENDHEARBEAT_EMPTY_ENUMERATOR = 2150858973;
		public const uint32 ERROR_WSMAN_CLIENT_UNENCRYPTED_DISABLED = 2150858974;
		public const uint32 ERROR_WSMAN_CLIENT_BASIC_AUTHENTICATION_DISABLED = 2150858975;
		public const uint32 ERROR_WSMAN_CLIENT_DIGEST_AUTHENTICATION_DISABLED = 2150858976;
		public const uint32 ERROR_WSMAN_CLIENT_NEGOTIATE_AUTHENTICATION_DISABLED = 2150858977;
		public const uint32 ERROR_WSMAN_CLIENT_KERBEROS_AUTHENTICATION_DISABLED = 2150858978;
		public const uint32 ERROR_WSMAN_CLIENT_CERTIFICATES_AUTHENTICATION_DISABLED = 2150858979;
		public const uint32 ERROR_WSMAN_SERVER_NOT_TRUSTED = 2150858980;
		public const uint32 ERROR_WSMAN_EXPLICIT_CREDENTIALS_REQUIRED = 2150858981;
		public const uint32 ERROR_WSMAN_CERT_THUMBPRINT_NOT_BLANK = 2150858982;
		public const uint32 ERROR_WSMAN_CERT_THUMBPRINT_BLANK = 2150858983;
		public const uint32 ERROR_WSMAN_CONFIG_CANNOT_SHARE_SSL_CONFIG = 2150858984;
		public const uint32 ERROR_WSMAN_CONFIG_CERT_CN_DOES_NOT_MATCH_HOSTNAME = 2150858985;
		public const uint32 ERROR_WSMAN_CONFIG_HOSTNAME_CHANGE_WITHOUT_CERT = 2150858986;
		public const uint32 ERROR_WSMAN_CONFIG_THUMBPRINT_SHOULD_BE_EMPTY = 2150858987;
		public const uint32 ERROR_WSMAN_INVALID_IPFILTER = 2150858988;
		public const uint32 ERROR_WSMAN_CANNOT_CHANGE_KEYS = 2150858989;
		public const uint32 ERROR_WSMAN_CERT_INVALID_USAGE = 2150858990;
		public const uint32 ERROR_WSMAN_RESPONSE_NO_RESULTS = 2150858991;
		public const uint32 ERROR_WSMAN_CREATE_RESPONSE_NO_EPR = 2150858992;
		public const uint32 ERROR_WSMAN_RESPONSE_INVALID_ENUMERATION_CONTEXT = 2150858993;
		public const uint32 ERROR_WSMAN_RESPONSE_NO_XML_FRAGMENT_WRAPPER = 2150858994;
		public const uint32 ERROR_WSMAN_RESPONSE_INVALID_MESSAGE_INFORMATION_HEADER = 2150858995;
		public const uint32 ERROR_WSMAN_RESPONSE_NO_SOAP_HEADER_BODY = 2150858996;
		public const uint32 ERROR_WSMAN_HTTP_NO_RESPONSE_DATA = 2150858997;
		public const uint32 ERROR_WSMAN_RESPONSE_INVALID_SOAP_FAULT = 2150858998;
		public const uint32 ERROR_WSMAN_HTTP_INVALID_CONTENT_TYPE_IN_RESPONSE_DATA = 2150858999;
		public const uint32 ERROR_WSMAN_HTTP_CONTENT_TYPE_MISSMATCH_RESPONSE_DATA = 2150859000;
		public const uint32 ERROR_WSMAN_CANNOT_DECRYPT = 2150859001;
		public const uint32 ERROR_WSMAN_INVALID_URI_WMI_SINGLETON = 2150859002;
		public const uint32 ERROR_WSMAN_INVALID_URI_WMI_ENUM_WQL = 2150859003;
		public const uint32 ERROR_WSMAN_NO_IDENTIFY_FOR_LOCAL_SESSION = 2150859004;
		public const uint32 ERROR_WSMAN_NO_PUSH_SUBSCRIPTION_FOR_LOCAL_SESSION = 2150859005;
		public const uint32 ERROR_WSMAN_INVALID_SUBSCRIPTION_MANAGER = 2150859006;
		public const uint32 ERROR_WSMAN_NON_PULL_SUBSCRIPTION_NOT_SUPPORTED = 2150859007;
		public const uint32 ERROR_WSMAN_WMI_MAX_NESTED = 2150859008;
		public const uint32 ERROR_WSMAN_REMOTE_CIMPATH_NOT_SUPPORTED = 2150859009;
		public const uint32 ERROR_WSMAN_WMI_PROVIDER_NOT_CAPABLE = 2150859010;
		public const uint32 ERROR_WSMAN_WMI_INVALID_VALUE = 2150859011;
		public const uint32 ERROR_WSMAN_WMI_SVC_ACCESS_DENIED = 2150859012;
		public const uint32 ERROR_WSMAN_WMI_PROVIDER_ACCESS_DENIED = 2150859013;
		public const uint32 ERROR_WSMAN_WMI_CANNOT_CONNECT_ACCESS_DENIED = 2150859014;
		public const uint32 ERROR_WSMAN_INVALID_FILTER_XML = 2150859015;
		public const uint32 ERROR_WSMAN_ENUMERATE_WMI_INVALID_KEY = 2150859016;
		public const uint32 ERROR_WSMAN_INVALID_FRAGMENT_PATH_BLANK = 2150859017;
		public const uint32 ERROR_WSMAN_INVALID_CHARACTERS_IN_RESPONSE = 2150859018;
		public const uint32 ERROR_WSMAN_KERBEROS_IPADDRESS = 2150859019;
		public const uint32 ERROR_WSMAN_CLIENT_WORKGROUP_NO_KERBEROS = 2150859020;
		public const uint32 ERROR_WSMAN_INVALID_BATCH_SETTINGS_PARAMETER = 2150859021;
		public const uint32 ERROR_WSMAN_SERVER_DESTINATION_LOCALHOST = 2150859022;
		public const uint32 ERROR_WSMAN_UNKNOWN_HTTP_STATUS_RETURNED = 2150859023;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_HTTP_STATUS_REDIRECT = 2150859024;
		public const uint32 ERROR_WSMAN_HTTP_REQUEST_TOO_LARGE_STATUS = 2150859025;
		public const uint32 ERROR_WSMAN_HTTP_SERVICE_UNAVAILABLE_STATUS = 2150859026;
		public const uint32 ERROR_WSMAN_HTTP_NOT_FOUND_STATUS = 2150859027;
		public const uint32 ERROR_WSMAN_EVENTING_MISSING_LOCALE_IN_DELIVERY = 2150859028;
		public const uint32 ERROR_WSMAN_QUICK_CONFIG_FAILED_CERT_REQUIRED = 2150859029;
		public const uint32 ERROR_WSMAN_QUICK_CONFIG_FIREWALL_EXCEPTIONS_DISALLOWED = 2150859030;
		public const uint32 ERROR_WSMAN_QUICK_CONFIG_LOCAL_POLICY_CHANGE_DISALLOWED = 2150859031;
		public const uint32 ERROR_WSMAN_INVALID_SELECTOR_NAME = 2150859032;
		public const uint32 ERROR_WSMAN_ENCODING_TYPE = 2150859033;
		public const uint32 ERROR_WSMAN_ENDPOINT_UNAVAILABLE_INVALID_VALUE = 2150859034;
		public const uint32 ERROR_WSMAN_INVALID_HEADER = 2150859035;
		public const uint32 ERROR_WSMAN_ENUMERATE_UNSUPPORTED_EXPIRATION_TYPE = 2150859036;
		public const uint32 ERROR_WSMAN_MAX_ELEMENTS_NOT_SUPPORTED = 2150859037;
		public const uint32 ERROR_WSMAN_WMI_PROVIDER_INVALID_PARAMETER = 2150859038;
		public const uint32 ERROR_WSMAN_CLIENT_MULTIPLE_ENUM_MODE_FLAGS = 2150859039;
		public const uint32 ERROR_WINRS_CLIENT_INVALID_FLAG = 2150859040;
		public const uint32 ERROR_WINRS_CLIENT_NULL_PARAM = 2150859041;
		public const uint32 ERROR_WSMAN_CANNOT_PROCESS_FILTER = 2150859042;
		public const uint32 ERROR_WSMAN_CLIENT_ENUMERATORADDEVENT_NULL_PARAM = 2150859043;
		public const uint32 ERROR_WSMAN_ADDOBJECT_MISSING_OBJECT = 2150859044;
		public const uint32 ERROR_WSMAN_ADDOBJECT_MISSING_EPR = 2150859045;
		public const uint32 ERROR_WSMAN_NETWORK_TIMEDOUT = 2150859046;
		public const uint32 ERROR_WINRS_RECEIVE_IN_PROGRESS = 2150859047;
		public const uint32 ERROR_WINRS_RECEIVE_NO_RESPONSE_DATA = 2150859048;
		public const uint32 ERROR_WINRS_CLIENT_CREATESHELL_NULL_PARAM = 2150859049;
		public const uint32 ERROR_WINRS_CLIENT_CLOSESHELL_NULL_PARAM = 2150859050;
		public const uint32 ERROR_WINRS_CLIENT_FREECREATESHELLRESULT_NULL_PARAM = 2150859051;
		public const uint32 ERROR_WINRS_CLIENT_RUNCOMMAND_NULL_PARAM = 2150859052;
		public const uint32 ERROR_WINRS_CLIENT_FREERUNCOMMANDRESULT_NULL_PARAM = 2150859053;
		public const uint32 ERROR_WINRS_CLIENT_SIGNAL_NULL_PARAM = 2150859054;
		public const uint32 ERROR_WINRS_CLIENT_RECEIVE_NULL_PARAM = 2150859055;
		public const uint32 ERROR_WINRS_CLIENT_FREEPULLRESULT_NULL_PARAM = 2150859056;
		public const uint32 ERROR_WINRS_CLIENT_PULL_NULL_PARAM = 2150859057;
		public const uint32 ERROR_WINRS_CLIENT_CLOSERECEIVEHANDLE_NULL_PARAM = 2150859058;
		public const uint32 ERROR_WINRS_CLIENT_SEND_NULL_PARAM = 2150859059;
		public const uint32 ERROR_WINRS_CLIENT_PUSH_NULL_PARAM = 2150859060;
		public const uint32 ERROR_WINRS_CLIENT_CLOSESENDHANDLE_NULL_PARAM = 2150859061;
		public const uint32 ERROR_WINRS_CLIENT_GET_NULL_PARAM = 2150859062;
		public const uint32 ERROR_WSMAN_POLYMORPHISM_MODE_UNSUPPORTED = 2150859063;
		public const uint32 ERROR_WSMAN_REQUEST_NOT_SUPPORTED_AT_SERVICE = 2150859064;
		public const uint32 ERROR_WSMAN_URI_NON_DMTF_CLASS = 2150859065;
		public const uint32 ERROR_WSMAN_URI_WRONG_DMTF_VERSION = 2150859066;
		public const uint32 ERROR_WSMAN_DIFFERENT_CIM_SELECTOR = 2150859067;
		public const uint32 ERROR_WSMAN_PUSHSUBSCRIPTION_INVALIDUSERACCOUNT = 2150859068;
		public const uint32 ERROR_WSMAN_EVENTING_NONDOMAINJOINED_PUBLISHER = 2150859069;
		public const uint32 ERROR_WSMAN_EVENTING_NONDOMAINJOINED_COLLECTOR = 2150859070;
		public const uint32 ERROR_WSMAN_CONFIG_READONLY_PROPERTY = 2150859071;
		public const uint32 ERROR_WINRS_CODE_PAGE_NOT_SUPPORTED = 2150859072;
		public const uint32 ERROR_WSMAN_CLIENT_DISABLE_LOOPBACK_WITH_EXPLICIT_CREDENTIALS = 2150859073;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_DISABLE_LOOPBACK = 2150859074;
		public const uint32 ERROR_WSMAN_CLIENT_ENUM_RECEIVED_TOO_MANY_ITEMS = 2150859075;
		public const uint32 ERROR_WSMAN_MULTIPLE_CREDENTIALS = 2150859076;
		public const uint32 ERROR_WSMAN_AUTHENTICATION_INVALID_FLAG = 2150859077;
		public const uint32 ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_DEFAULT_AUTHENTICATION = 2150859078;
		public const uint32 ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED = 2150859079;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_CERT_DNS_OR_UPN = 2150859080;
		public const uint32 ERROR_WSMAN_CREATESHELL_NULL_ENVIRONMENT_VARIABLE_NAME = 2150859081;
		public const uint32 ERROR_WSMAN_SHELL_ALREADY_CLOSED = 2150859082;
		public const uint32 ERROR_WSMAN_CREATESHELL_NULL_STREAMID = 2150859083;
		public const uint32 ERROR_WSMAN_SHELL_INVALID_SHELL_HANDLE = 2150859084;
		public const uint32 ERROR_WSMAN_SHELL_INVALID_COMMAND_HANDLE = 2150859085;
		public const uint32 ERROR_WSMAN_RUNSHELLCOMMAND_NULL_ARGUMENT = 2150859086;
		public const uint32 ERROR_WSMAN_COMMAND_ALREADY_CLOSED = 2150859087;
		public const uint32 ERROR_WSMAN_SENDSHELLINPUT_INVALID_STREAMID_INDEX = 2150859088;
		public const uint32 ERROR_WSMAN_SHELL_SYNCHRONOUS_NOT_SUPPORTED = 2150859089;
		public const uint32 ERROR_WSMAN_NO_CERTMAPPING_OPERATION_FOR_LOCAL_SESSION = 2150859090;
		public const uint32 ERROR_WSMAN_CERTMAPPING_CONFIGLIMIT_EXCEEDED = 2150859091;
		public const uint32 ERROR_WSMAN_CERTMAPPING_INVALIDUSERCREDENTIALS = 2150859092;
		public const uint32 ERROR_WSMAN_CERT_INVALID_USAGE_CLIENT = 2150859093;
		public const uint32 ERROR_WSMAN_CERT_MISSING_AUTH_FLAG = 2150859094;
		public const uint32 ERROR_WSMAN_CERT_MULTIPLE_CREDENTIALS_FLAG = 2150859095;
		public const uint32 ERROR_WSMAN_CONFIG_SHELL_URI_INVALID = 2150859096;
		public const uint32 ERROR_WSMAN_CONFIG_SHELL_URI_CMDSHELLURI_NOTPERMITTED = 2150859097;
		public const uint32 ERROR_WSMAN_CONFIG_SHELLURI_INVALID_PROCESSPATH = 2150859098;
		public const uint32 ERROR_WINRS_SHELL_URI_INVALID = 2150859099;
		public const uint32 ERROR_WSMAN_INVALID_SECURITY_DESCRIPTOR = 2150859100;
		public const uint32 ERROR_WSMAN_POLICY_TOO_COMPLEX = 2150859101;
		public const uint32 ERROR_WSMAN_POLICY_CANNOT_COMPLY = 2150859102;
		public const uint32 ERROR_WSMAN_INVALID_CONNECTIONRETRY = 2150859103;
		public const uint32 ERROR_WSMAN_URISECURITY_INVALIDURIKEY = 2150859104;
		public const uint32 ERROR_WSMAN_CERTMAPPING_INVALIDSUBJECTKEY = 2150859105;
		public const uint32 ERROR_WSMAN_CERTMAPPING_INVALIDISSUERKEY = 2150859106;
		public const uint32 ERROR_WSMAN_INVALID_PUBLISHERS_TYPE = 2150859107;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_DELIVERY_RETRY = 2150859108;
		public const uint32 ERROR_WSMAN_CLIENT_NULL_PUBLISHERS = 2150859109;
		public const uint32 ERROR_WSMAN_CLIENT_NULL_ISSUERS = 2150859110;
		public const uint32 ERROR_WSMAN_CLIENT_NO_SOURCES = 2150859111;
		public const uint32 ERROR_WSMAN_INVALID_SUBSCRIBE_OBJECT = 2150859112;
		public const uint32 ERROR_WSMAN_PUBLIC_FIREWALL_PROFILE_ACTIVE = 2150859113;
		public const uint32 ERROR_WSMAN_CERTMAPPING_PASSWORDTOOLONG = 2150859114;
		public const uint32 ERROR_WSMAN_CERTMAPPING_PASSWORDBLANK = 2150859115;
		public const uint32 ERROR_WSMAN_CERTMAPPING_PASSWORDUSERTUPLE = 2150859116;
		public const uint32 ERROR_WSMAN_INVALID_PROVIDER_RESPONSE = 2150859117;
		public const uint32 ERROR_WSMAN_SHELL_NOT_INITIALIZED = 2150859118;
		public const uint32 ERROR_WSMAN_CONFIG_SHELLURI_INVALID_OPERATION_ON_KEY = 2150859119;
		public const uint32 ERROR_WSMAN_HTTP_STATUS_SERVER_ERROR = 2150859120;
		public const uint32 ERROR_WSMAN_HTTP_STATUS_BAD_REQUEST = 2150859121;
		public const uint32 ERROR_WSMAN_CONFIG_CANNOT_CHANGE_CERTMAPPING_KEYS = 2150859122;
		public const uint32 ERROR_WSMAN_HTML_ERROR = 2150859123;
		public const uint32 ERROR_WSMAN_CLIENT_INITIALIZE_NULL_PARAM = 2150859124;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_INIT_APPLICATION_FLAG = 2150859125;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_DEINIT_APPLICATION_FLAG = 2150859126;
		public const uint32 ERROR_WSMAN_CLIENT_SETSESSIONOPTION_NULL_PARAM = 2150859127;
		public const uint32 ERROR_WSMAN_CLIENT_SETSESSIONOPTION_INVALID_PARAM = 2150859128;
		public const uint32 ERROR_WSMAN_CLIENT_GETSESSIONOPTION_INVALID_PARAM = 2150859129;
		public const uint32 ERROR_WSMAN_CLIENT_CREATESHELL_NULL_PARAM = 2150859130;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_CREATE_SHELL_FLAG = 2150859131;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_CLOSE_SHELL_FLAG = 2150859132;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_CLOSE_COMMAND_FLAG = 2150859133;
		public const uint32 ERROR_WSMAN_CLIENT_CLOSESHELL_NULL_PARAM = 2150859134;
		public const uint32 ERROR_WSMAN_CLIENT_CLOSECOMMAND_NULL_PARAM = 2150859135;
		public const uint32 ERROR_WSMAN_CLIENT_RUNCOMMAND_NULL_PARAM = 2150859136;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_RUNCOMMAND_FLAG = 2150859137;
		public const uint32 ERROR_WSMAN_CLIENT_RUNCOMMAND_NOTCOMPLETED = 2150859138;
		public const uint32 ERROR_WSMAN_NO_COMMAND_RESPONSE = 2150859139;
		public const uint32 ERROR_WSMAN_INVALID_OPTIONSET = 2150859140;
		public const uint32 ERROR_WSMAN_NO_COMMANDID = 2150859141;
		public const uint32 ERROR_WSMAN_CLIENT_SIGNAL_NULL_PARAM = 2150859142;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_SIGNAL_SHELL_FLAG = 2150859143;
		public const uint32 ERROR_WSMAN_CLIENT_SEND_NULL_PARAM = 2150859144;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_SEND_SHELL_FLAG = 2150859145;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_SEND_SHELL_PARAMETER = 2150859146;
		public const uint32 ERROR_WSMAN_SHELL_INVALID_INPUT_STREAM = 2150859147;
		public const uint32 ERROR_WSMAN_CLIENT_RECEIVE_NULL_PARAM = 2150859148;
		public const uint32 ERROR_WSMAN_SHELL_INVALID_DESIRED_STREAMS = 2150859149;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_RECEIVE_SHELL_FLAG = 2150859150;
		public const uint32 ERROR_WSMAN_NO_RECEIVE_RESPONSE = 2150859151;
		public const uint32 ERROR_WSMAN_PLUGIN_CONFIGURATION_CORRUPTED = 2150859152;
		public const uint32 ERROR_WSMAN_INVALID_FILEPATH = 2150859153;
		public const uint32 ERROR_WSMAN_FILE_NOT_PRESENT = 2150859154;
		public const uint32 ERROR_WSMAN_IISCONFIGURATION_READ_FAILED = 2150859155;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_LOCALE = 2150859156;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_UI_LANGUAGE = 2150859157;
		public const uint32 ERROR_WSMAN_CLIENT_GETERRORMESSAGE_NULL_PARAM = 2150859158;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_LANGUAGE_CODE = 2150859159;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_GETERRORMESSAGE_FLAG = 2150859160;
		public const uint32 ERROR_WSMAN_REDIRECT_REQUESTED = 2150859161;
		public const uint32 ERROR_WSMAN_PROXY_AUTHENTICATION_INVALID_FLAG = 2150859162;
		public const uint32 ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_PROXY_AUTHENTICATION = 2150859163;
		public const uint32 ERROR_WSMAN_PROXY_ACCESS_TYPE = 2150859164;
		public const uint32 ERROR_WSMAN_INVALID_OPTION_NO_PROXY_SERVER = 2150859165;
		public const uint32 ERROR_WSMAN_CLIENT_GETSESSIONOPTION_DWORD_NULL_PARAM = 2150859166;
		public const uint32 ERROR_WSMAN_CLIENT_GETSESSIONOPTION_DWORD_INVALID_PARAM = 2150859167;
		public const uint32 ERROR_WSMAN_CLIENT_GETSESSIONOPTION_STRING_INVALID_PARAM = 2150859168;
		public const uint32 ERROR_WSMAN_CREDSSP_USERNAME_PASSWORD_NEEDED = 2150859169;
		public const uint32 ERROR_WSMAN_CLIENT_CREDSSP_AUTHENTICATION_DISABLED = 2150859170;
		public const uint32 ERROR_WSMAN_CLIENT_ALLOWFRESHCREDENTIALS = 2150859171;
		public const uint32 ERROR_WSMAN_CLIENT_ALLOWFRESHCREDENTIALS_NTLMONLY = 2150859172;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_SHELLS = 2150859173;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_OPERATIONS = 2150859174;
		public const uint32 ERROR_WSMAN_QUOTA_USER = 2150859175;
		public const uint32 ERROR_WSMAN_QUOTA_SYSTEM = 2150859176;
		public const uint32 ERROR_WSMAN_DIFFERENT_AUTHZ_TOKEN = 2150859177;
		public const uint32 ERROR_WSMAN_REDIRECT_LOCATION_NOT_AVAILABLE = 2150859178;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_SHELLUSERS = 2150859179;
		public const uint32 ERROR_WSMAN_REMOTESHELLS_NOT_ALLOWED = 2150859180;
		public const uint32 ERROR_WSMAN_PULL_PARAMS_NOT_SAME_AS_ENUM = 2150859181;
		public const uint32 ERROR_WSMAN_DEPRECATED_CONFIG_SETTING = 2150859182;
		public const uint32 ERROR_WSMAN_URI_SECURITY_URI = 2150859183;
		public const uint32 ERROR_WSMAN_CANNOT_USE_ALLOW_NEGOTIATE_IMPLICIT_CREDENTIALS_FOR_HTTP = 2150859184;
		public const uint32 ERROR_WSMAN_CANNOT_USE_PROXY_SETTINGS_FOR_HTTP = 2150859185;
		public const uint32 ERROR_WSMAN_CANNOT_USE_PROXY_SETTINGS_FOR_KERBEROS = 2150859186;
		public const uint32 ERROR_WSMAN_CANNOT_USE_PROXY_SETTINGS_FOR_CREDSSP = 2150859187;
		public const uint32 ERROR_WSMAN_CLIENT_MULTIPLE_PROXY_AUTH_FLAGS = 2150859188;
		public const uint32 ERROR_WSMAN_INVALID_REDIRECT_ERROR = 2150859189;
		public const uint32 ERROR_REDIRECT_LOCATION_TOO_LONG = 2150859190;
		public const uint32 ERROR_REDIRECT_LOCATION_INVALID = 2150859191;
		public const uint32 ERROR_SERVICE_CBT_HARDENING_INVALID = 2150859192;
		public const uint32 ERROR_WSMAN_NAME_NOT_RESOLVED = 2150859193;
		public const uint32 ERROR_WSMAN_SSL_CONNECTION_ABORTED = 2150859194;
		public const uint32 ERROR_WSMAN_DEFAULTAUTH_IPADDRESS = 2150859195;
		public const uint32 ERROR_WSMAN_CUSTOMREMOTESHELL_DEPRECATED = 2150859196;
		public const uint32 ERROR_WSMAN_FEATURE_DEPRECATED = 2150859197;
		public const uint32 ERROR_WSMAN_INVALID_USESSL_PARAM = 2150859198;
		public const uint32 ERROR_WSMAN_INVALID_CONFIGSDDL_URL = 2150859199;
		public const uint32 ERROR_WSMAN_ENUMERATE_SHELLCOMAMNDS_FILTER_EXPECTED = 2150859200;
		public const uint32 ERROR_WSMAN_ENUMERATE_SHELLCOMMANDS_EPRS_NOTSUPPORTED = 2150859201;
		public const uint32 ERROR_WSMAN_CLIENT_CREATESHELL_NAME_INVALID = 2150859202;
		public const uint32 ERROR_WSMAN_RUNAS_INVALIDUSERCREDENTIALS = 2150859203;
		public const uint32 ERROR_WINRS_SHELL_DISCONNECTED = 2150859204;
		public const uint32 ERROR_WINRS_SHELL_DISCONNECT_NOT_SUPPORTED = 2150859205;
		public const uint32 ERROR_WINRS_SHELL_CLIENTSESSIONID_MISMATCH = 2150859206;
		public const uint32 ERROR_WSMAN_CLIENT_DISCONNECTSHELL_NULL_PARAM = 2150859207;
		public const uint32 ERROR_WSMAN_CLIENT_RECONNECTSHELL_NULL_PARAM = 2150859208;
		public const uint32 ERROR_WSMAN_CLIENT_CONNECTSHELL_NULL_PARAM = 2150859209;
		public const uint32 ERROR_WSMAN_CLIENT_CONNECTCOMMAND_NULL_PARAM = 2150859210;
		public const uint32 ERROR_WINRS_CONNECT_RESPONSE_BAD_BODY = 2150859211;
		public const uint32 ERROR_WSMAN_COMMAND_TERMINATED = 2150859212;
		public const uint32 ERROR_WINRS_SHELL_CONNECTED_TO_DIFFERENT_CLIENT = 2150859213;
		public const uint32 ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL = 2150859214;
		public const uint32 ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_VALID = 2150859215;
		public const uint32 ERROR_WINRS_SHELL_RECONNECT_OPERATION_NOT_VALID = 2150859216;
		public const uint32 ERROR_WSMAN_CONFIG_GROUP_POLICY_CHANGE_NOTIFICATION_SUBSCRIPTION_FAILED = 2150859217;
		public const uint32 ERROR_WSMAN_CLIENT_RECONNECTSHELLCOMMAND_NULL_PARAM = 2150859218;
		public const uint32 ERROR_WINRS_SHELLCOMMAND_RECONNECT_OPERATION_NOT_VALID = 2150859219;
		public const uint32 ERROR_WINRS_SHELLCOMMAND_CLIENTID_NOT_VALID = 2150859220;
		public const uint32 ERROR_WINRS_SHELL_CLIENTID_NOT_VALID = 2150859221;
		public const uint32 ERROR_WINRS_SHELLCOMMAND_CLIENTID_RESOURCE_CONFLICT = 2150859222;
		public const uint32 ERROR_WINRS_SHELL_CLIENTID_RESOURCE_CONFLICT = 2150859223;
		public const uint32 ERROR_WINRS_SHELLCOMMAND_DISCONNECT_OPERATION_NOT_VALID = 2150859224;
		public const uint32 ERROR_WSMAN_SUBSCRIBE_WMI_INVALID_KEY = 2150859225;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_DISCONNECT_SHELL_FLAG = 2150859226;
		public const uint32 ERROR_WSMAN_CLIENT_INVALID_SHELL_COMMAND_PAIR = 2150859227;
		public const uint32 ERROR_WSMAN_SEMANTICCALLBACK_TIMEDOUT = 2150859228;
		public const uint32 ERROR_WSMAN_SERVICE_REMOTE_ACCESS_DISABLED = 2150859229;
		public const uint32 ERROR_WSMAN_SERVICE_STREAM_DISCONNECTED = 2150859230;
		public const uint32 ERROR_WSMAN_CREATESHELL_RUNAS_FAILED = 2150859231;
		public const uint32 ERROR_WSMAN_INVALID_XML_RUNAS_DISABLED = 2150859232;
		public const uint32 ERROR_WSMAN_WRONG_METADATA = 2150859233;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_TYPE = 2150859234;
		public const uint32 ERROR_WSMAN_REMOTE_CONNECTION_NOT_ALLOWED = 2150859235;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_SHELLS_PPQ = 2150859236;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_USERS_PPQ = 2150859237;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_PLUGINSHELLS_PPQ = 2150859238;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_PLUGINOPERATIONS_PPQ = 2150859239;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_OPERATIONS_USER_PPQ = 2150859240;
		public const uint32 ERROR_WSMAN_QUOTA_MAX_COMMANDS_PER_SHELL_PPQ = 2150859241;
		public const uint32 ERROR_WSMAN_QUOTA_MIN_REQUIREMENT_NOT_AVAILABLE_PPQ = 2150859242;
		public const uint32 ERROR_WSMAN_NEW_DESERIALIZER = 2150859243;
		public const uint32 ERROR_WSMAN_DESERIALIZE_CLASS = 2150859244;
		public const uint32 ERROR_WSMAN_GETCLASS = 2150859245;
		public const uint32 ERROR_WSMAN_NEW_SESSION = 2150859246;
		public const uint32 ERROR_WSMAN_NULL_KEY = 2150859247;
		public const uint32 ERROR_WSMAN_MUTUAL_AUTH_FAILED = 2150859248;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_OCTETTYPE = 2150859249;
		public const uint32 ERROR_WINRS_IDLETIMEOUT_OUTOFBOUNDS = 2150859250;
		public const uint32 ERROR_WSMAN_INSUFFICIENT_METADATA_FOR_BASIC = 2150859251;
		public const uint32 ERROR_WSMAN_INVALID_LITERAL_URI = 2150859252;
		public const uint32 ERROR_WSMAN_OBJECTONLY_INVALID = 2150859253;
		public const uint32 ERROR_WSMAN_MISSING_CLASSNAME = 2150859254;
		public const uint32 ERROR_WSMAN_EVENTING_INVALID_ENCODING_IN_DELIVERY = 2150859255;
		public const uint32 ERROR_WSMAN_DESTINATION_INVALID = 2150859256;
		public const uint32 ERROR_WSMAN_UNSUPPORTED_FEATURE_IDENTIFY = 2150859257;
		public const uint32 ERROR_WSMAN_CLIENT_SESSION_UNUSABLE = 2150859258;
		public const uint32 ERROR_WSMAN_VIRTUALACCOUNT_NOTSUPPORTED = 2150859259;
		public const uint32 ERROR_WSMAN_VIRTUALACCOUNT_NOTSUPPORTED_DOWNLEVEL = 2150859260;
		public const uint32 ERROR_WSMAN_RUNASUSER_MANAGEDACCOUNT_LOGON_FAILED = 2150859261;
		public const uint32 ERROR_WSMAN_CERTMAPPING_CREDENTIAL_MANAGEMENT_FAILIED = 2150859262;
		
		// --- Enums ---
		
		public enum WSManDataType : int32
		{
			NONE = 0,
			TYPE_TEXT = 1,
			TYPE_BINARY = 2,
			TYPE_DWORD = 4,
		}
		public enum WSManAuthenticationFlags : int32
		{
			DEFAULT_AUTHENTICATION = 0,
			NO_AUTHENTICATION = 1,
			AUTH_DIGEST = 2,
			AUTH_NEGOTIATE = 4,
			AUTH_BASIC = 8,
			AUTH_KERBEROS = 16,
			AUTH_CREDSSP = 128,
			AUTH_CLIENT_CERTIFICATE = 32,
		}
		public enum WSManProxyAccessType : int32
		{
			IE_PROXY_CONFIG = 1,
			WINHTTP_PROXY_CONFIG = 2,
			AUTO_DETECT = 4,
			NO_PROXY_SERVER = 8,
		}
		public enum WSManSessionOption : int32
		{
			DEFAULT_OPERATION_TIMEOUTMS = 1,
			MAX_RETRY_TIME = 11,
			TIMEOUTMS_CREATE_SHELL = 12,
			TIMEOUTMS_RUN_SHELL_COMMAND = 13,
			TIMEOUTMS_RECEIVE_SHELL_OUTPUT = 14,
			TIMEOUTMS_SEND_SHELL_INPUT = 15,
			TIMEOUTMS_SIGNAL_SHELL = 16,
			TIMEOUTMS_CLOSE_SHELL = 17,
			SKIP_CA_CHECK = 18,
			SKIP_CN_CHECK = 19,
			UNENCRYPTED_MESSAGES = 20,
			UTF16 = 21,
			ENABLE_SPN_SERVER_PORT = 22,
			MACHINE_ID = 23,
			LOCALE = 25,
			UI_LANGUAGE = 26,
			MAX_ENVELOPE_SIZE_KB = 28,
			SHELL_MAX_DATA_SIZE_PER_MESSAGE_KB = 29,
			REDIRECT_LOCATION = 30,
			SKIP_REVOCATION_CHECK = 31,
			ALLOW_NEGOTIATE_IMPLICIT_CREDENTIALS = 32,
			USE_SSL = 33,
			USE_INTEARACTIVE_TOKEN = 34,
		}
		public enum WSManCallbackFlags : int32
		{
			END_OF_OPERATION = 1,
			END_OF_STREAM = 8,
			SHELL_SUPPORTS_DISCONNECT = 32,
			SHELL_AUTODISCONNECTED = 64,
			NETWORK_FAILURE_DETECTED = 256,
			RETRYING_AFTER_NETWORK_FAILURE = 512,
			RECONNECTED_AFTER_NETWORK_FAILURE = 1024,
			SHELL_AUTODISCONNECTING = 2048,
			RETRY_ABORTED_DUE_TO_INTERNAL_ERROR = 4096,
			RECEIVE_DELAY_STREAM_REQUEST_PROCESSED = 8192,
		}
		public enum WSManShellFlag : int32
		{
			NO_COMPRESSION = 1,
			DELETE_SERVER_SESSION = 2,
			SERVER_BUFFERING_MODE_DROP = 4,
			SERVER_BUFFERING_MODE_BLOCK = 8,
			RECEIVE_DELAY_OUTPUT_STREAM = 16,
		}
		public enum WSManSessionFlags : int32
		{
			UTF8 = 1,
			CredUsernamePassword = 4096,
			SkipCACheck = 8192,
			SkipCNCheck = 16384,
			UseNoAuthentication = 32768,
			UseDigest = 65536,
			UseNegotiate = 131072,
			UseBasic = 262144,
			UseKerberos = 524288,
			NoEncryption = 1048576,
			UseClientCertificate = 2097152,
			EnableSPNServerPort = 4194304,
			UTF16 = 8388608,
			UseCredSsp = 16777216,
			SkipRevocationCheck = 33554432,
			AllowNegotiateImplicitCredentials = 67108864,
			UseSsl = 134217728,
		}
		[AllowDuplicates]
		public enum WSManEnumFlags : int32
		{
			NonXmlText = 1,
			ReturnObject = 0,
			ReturnEPR = 2,
			ReturnObjectAndEPR = 4,
			HierarchyDeep = 0,
			HierarchyShallow = 32,
			HierarchyDeepBasePropsOnly = 64,
			AssociatedInstance = 0,
			AssociationInstance = 128,
		}
		public enum WSManProxyAccessTypeFlags : int32
		{
			IEConfig = 1,
			WinHttpConfig = 2,
			AutoDetect = 4,
			NoProxyServer = 8,
		}
		public enum WSManProxyAuthenticationFlags : int32
		{
			Negotiate = 1,
			Basic = 2,
			Digest = 4,
		}
		
		// --- Function Pointers ---
		
		public function void WSMAN_SHELL_COMPLETION_FUNCTION(void* operationContext, uint32 flags, ref WSMAN_ERROR error, ref WSMAN_SHELL shell, WSMAN_COMMAND* command, WSMAN_OPERATION* operationHandle, WSMAN_RESPONSE_DATA* data);
		public function void WSMAN_PLUGIN_RELEASE_SHELL_CONTEXT(void* shellContext);
		public function void WSMAN_PLUGIN_RELEASE_COMMAND_CONTEXT(void* shellContext, void* commandContext);
		public function uint32 WSMAN_PLUGIN_STARTUP(uint32 flags, PWSTR applicationIdentification, PWSTR extraInfo, void** pluginContext);
		public function uint32 WSMAN_PLUGIN_SHUTDOWN(void* pluginContext, uint32 flags, uint32 reason);
		public function void WSMAN_PLUGIN_SHELL(void* pluginContext, ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, WSMAN_SHELL_STARTUP_INFO_V11* startupInfo, WSMAN_DATA* inboundShellInformation);
		public function void WSMAN_PLUGIN_COMMAND(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, void* shellContext, PWSTR commandLine, WSMAN_COMMAND_ARG_SET* arguments);
		public function void WSMAN_PLUGIN_SEND(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, void* shellContext, void* commandContext, PWSTR stream, ref WSMAN_DATA inboundData);
		public function void WSMAN_PLUGIN_RECEIVE(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, void* shellContext, void* commandContext, WSMAN_STREAM_ID_SET* streamSet);
		public function void WSMAN_PLUGIN_SIGNAL(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, void* shellContext, void* commandContext, PWSTR code);
		public function void WSMAN_PLUGIN_CONNECT(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, void* shellContext, void* commandContext, WSMAN_DATA* inboundConnectInformation);
		public function void WSMAN_PLUGIN_AUTHORIZE_USER(void* pluginContext, ref WSMAN_SENDER_DETAILS senderDetails, uint32 flags);
		public function void WSMAN_PLUGIN_AUTHORIZE_OPERATION(void* pluginContext, ref WSMAN_SENDER_DETAILS senderDetails, uint32 flags, uint32 operation, PWSTR action, PWSTR resourceUri);
		public function void WSMAN_PLUGIN_AUTHORIZE_QUERY_QUOTA(void* pluginContext, ref WSMAN_SENDER_DETAILS senderDetails, uint32 flags);
		public function void WSMAN_PLUGIN_AUTHORIZE_RELEASE_CONTEXT(void* userAuthorizationContext);
		
		// --- Structs ---
		
		[CRepr]
		public struct WSMAN_DATA_TEXT
		{
			public uint32 bufferLength;
			public PWSTR buffer;
		}
		[CRepr]
		public struct WSMAN_DATA_BINARY
		{
			public uint32 dataLength;
			public uint8* data;
		}
		[CRepr]
		public struct WSMAN_DATA
		{
			public WSManDataType type;
			public _Anonymous_e__Union Anonymous;
			
			public WSMAN_DATA_TEXT text { get => Anonymous.text; set mut => Anonymous.text = value; }
			public WSMAN_DATA_BINARY binaryData { get => Anonymous.binaryData; set mut => Anonymous.binaryData = value; }
			public uint32 number { get => Anonymous.number; set mut => Anonymous.number = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public WSMAN_DATA_TEXT text;
				public WSMAN_DATA_BINARY binaryData;
				public uint32 number;
			}
		}
		[CRepr]
		public struct WSMAN_ERROR
		{
			public uint32 code;
			public PWSTR errorDetail;
			public PWSTR language;
			public PWSTR machineName;
			public PWSTR pluginName;
		}
		[CRepr]
		public struct WSMAN_USERNAME_PASSWORD_CREDS
		{
			public PWSTR username;
			public PWSTR password;
		}
		[CRepr]
		public struct WSMAN_AUTHENTICATION_CREDENTIALS
		{
			public uint32 authenticationMechanism;
			public _Anonymous_e__Union Anonymous;
			
			public WSMAN_USERNAME_PASSWORD_CREDS userAccount { get => Anonymous.userAccount; set mut => Anonymous.userAccount = value; }
			public PWSTR certificateThumbprint { get => Anonymous.certificateThumbprint; set mut => Anonymous.certificateThumbprint = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public WSMAN_USERNAME_PASSWORD_CREDS userAccount;
				public PWSTR certificateThumbprint;
			}
		}
		[CRepr]
		public struct WSMAN_OPTION
		{
			public PWSTR name;
			public PWSTR value;
			public BOOL mustComply;
		}
		[CRepr]
		public struct WSMAN_OPTION_SET
		{
			public uint32 optionsCount;
			public WSMAN_OPTION* options;
			public BOOL optionsMustUnderstand;
		}
		[CRepr]
		public struct WSMAN_OPTION_SETEX
		{
			public uint32 optionsCount;
			public WSMAN_OPTION* options;
			public BOOL optionsMustUnderstand;
			public PWSTR* optionTypes;
		}
		[CRepr]
		public struct WSMAN_KEY
		{
			public PWSTR key;
			public PWSTR value;
		}
		[CRepr]
		public struct WSMAN_SELECTOR_SET
		{
			public uint32 numberKeys;
			public WSMAN_KEY* keys;
		}
		[CRepr]
		public struct WSMAN_FRAGMENT
		{
			public PWSTR path;
			public PWSTR dialect;
		}
		[CRepr]
		public struct WSMAN_FILTER
		{
			public PWSTR filter;
			public PWSTR dialect;
		}
		[CRepr]
		public struct WSMAN_OPERATION_INFO
		{
			public WSMAN_FRAGMENT fragment;
			public WSMAN_FILTER filter;
			public WSMAN_SELECTOR_SET selectorSet;
			public WSMAN_OPTION_SET optionSet;
			public void* reserved;
			public uint32 version;
		}
		[CRepr]
		public struct WSMAN_OPERATION_INFOEX
		{
			public WSMAN_FRAGMENT fragment;
			public WSMAN_FILTER filter;
			public WSMAN_SELECTOR_SET selectorSet;
			public WSMAN_OPTION_SETEX optionSet;
			public uint32 version;
			public PWSTR uiLocale;
			public PWSTR dataLocale;
		}
		[CRepr]
		public struct WSMAN_API {}
		[CRepr]
		public struct WSMAN_PROXY_INFO
		{
			public uint32 accessType;
			public WSMAN_AUTHENTICATION_CREDENTIALS authenticationCredentials;
		}
		[CRepr]
		public struct WSMAN_SESSION {}
		[CRepr]
		public struct WSMAN_OPERATION {}
		[CRepr]
		public struct WSMAN_SHELL {}
		[CRepr]
		public struct WSMAN_COMMAND {}
		[CRepr]
		public struct WSMAN_STREAM_ID_SET
		{
			public uint32 streamIDsCount;
			public PWSTR* streamIDs;
		}
		[CRepr]
		public struct WSMAN_ENVIRONMENT_VARIABLE
		{
			public PWSTR name;
			public PWSTR value;
		}
		[CRepr]
		public struct WSMAN_ENVIRONMENT_VARIABLE_SET
		{
			public uint32 varsCount;
			public WSMAN_ENVIRONMENT_VARIABLE* vars;
		}
		[CRepr]
		public struct WSMAN_SHELL_STARTUP_INFO_V10
		{
			public WSMAN_STREAM_ID_SET* inputStreamSet;
			public WSMAN_STREAM_ID_SET* outputStreamSet;
			public uint32 idleTimeoutMs;
			public PWSTR workingDirectory;
			public WSMAN_ENVIRONMENT_VARIABLE_SET* variableSet;
		}
		[CRepr]
		public struct WSMAN_SHELL_STARTUP_INFO_V11
		{
			public WSMAN_SHELL_STARTUP_INFO_V10 __AnonymousBase_wsman_L665_C48;
			public PWSTR name;
		}
		[CRepr]
		public struct WSMAN_SHELL_DISCONNECT_INFO
		{
			public uint32 idleTimeoutMs;
		}
		[CRepr]
		public struct WSMAN_RECEIVE_DATA_RESULT
		{
			public PWSTR streamId;
			public WSMAN_DATA streamData;
			public PWSTR commandState;
			public uint32 exitCode;
		}
		[CRepr]
		public struct WSMAN_CONNECT_DATA
		{
			public WSMAN_DATA data;
		}
		[CRepr]
		public struct WSMAN_CREATE_SHELL_DATA
		{
			public WSMAN_DATA data;
		}
		[CRepr, Union]
		public struct WSMAN_RESPONSE_DATA
		{
			public WSMAN_RECEIVE_DATA_RESULT receiveData;
			public WSMAN_CONNECT_DATA connectData;
			public WSMAN_CREATE_SHELL_DATA createData;
		}
		[CRepr]
		public struct WSMAN_SHELL_ASYNC
		{
			public void* operationContext;
			public WSMAN_SHELL_COMPLETION_FUNCTION completionFunction;
		}
		[CRepr]
		public struct WSMAN_COMMAND_ARG_SET
		{
			public uint32 argsCount;
			public PWSTR* args;
		}
		[CRepr]
		public struct WSMAN_CERTIFICATE_DETAILS
		{
			public PWSTR subject;
			public PWSTR issuerName;
			public PWSTR issuerThumbprint;
			public PWSTR subjectName;
		}
		[CRepr]
		public struct WSMAN_SENDER_DETAILS
		{
			public PWSTR senderName;
			public PWSTR authenticationMechanism;
			public WSMAN_CERTIFICATE_DETAILS* certificateDetails;
			public HANDLE clientToken;
			public PWSTR httpURL;
		}
		[CRepr]
		public struct WSMAN_PLUGIN_REQUEST
		{
			public WSMAN_SENDER_DETAILS* senderDetails;
			public PWSTR locale;
			public PWSTR resourceUri;
			public WSMAN_OPERATION_INFO* operationInfo;
			public int32 shutdownNotification;
			public HANDLE shutdownNotificationHandle;
			public PWSTR dataLocale;
		}
		[CRepr]
		public struct WSMAN_AUTHZ_QUOTA
		{
			public uint32 maxAllowedConcurrentShells;
			public uint32 maxAllowedConcurrentOperations;
			public uint32 timeslotSize;
			public uint32 maxAllowedOperationsPerTimeslot;
		}
		
		// --- COM Class IDs ---
		
		public const Guid CLSID_WSMan = .(0xbced617b, 0xec03, 0x420b, 0x85, 0x08, 0x97, 0x7d, 0xc7, 0xa6, 0x86, 0xbd);
		public const Guid CLSID_WSManInternal = .(0x7de087a5, 0x5dcb, 0x4df7, 0xbb, 0x12, 0x09, 0x24, 0xad, 0x8f, 0xbd, 0x9a);
		
		// --- COM Interfaces ---
		
		[CRepr]
		public struct IWSMan : IDispatch
		{
			public const new Guid IID = .(0x190d8637, 0x5cd3, 0x496d, 0xad, 0x24, 0x69, 0x63, 0x6b, 0xb5, 0xa3, 0xb5);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreateSession(BSTR connection, int32 flags, ref IDispatch connectionOptions, out IDispatch* session) mut => VT.CreateSession(ref this, connection, flags, ref connectionOptions, out session);
			public HRESULT CreateConnectionOptions(out IDispatch* connectionOptions) mut => VT.CreateConnectionOptions(ref this, out connectionOptions);
			public HRESULT get_CommandLine(out BSTR value) mut => VT.get_CommandLine(ref this, out value);
			public HRESULT get_Error(out BSTR value) mut => VT.get_Error(ref this, out value);

			[CRepr]
			public struct VTable : IDispatch.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSMan self, BSTR connection, int32 flags, ref IDispatch connectionOptions, out IDispatch* session) CreateSession;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSMan self, out IDispatch* connectionOptions) CreateConnectionOptions;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSMan self, out BSTR value) get_CommandLine;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSMan self, out BSTR value) get_Error;
			}
		}
		[CRepr]
		public struct IWSManEx : IWSMan
		{
			public const new Guid IID = .(0x2d53bdaa, 0x798e, 0x49e6, 0xa1, 0xaa, 0x74, 0xd0, 0x12, 0x56, 0xf4, 0x11);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreateResourceLocator(BSTR strResourceLocator, out IDispatch* newResourceLocator) mut => VT.CreateResourceLocator(ref this, strResourceLocator, out newResourceLocator);
			public HRESULT SessionFlagUTF8(out int32 flags) mut => VT.SessionFlagUTF8(ref this, out flags);
			public HRESULT SessionFlagCredUsernamePassword(out int32 flags) mut => VT.SessionFlagCredUsernamePassword(ref this, out flags);
			public HRESULT SessionFlagSkipCACheck(out int32 flags) mut => VT.SessionFlagSkipCACheck(ref this, out flags);
			public HRESULT SessionFlagSkipCNCheck(out int32 flags) mut => VT.SessionFlagSkipCNCheck(ref this, out flags);
			public HRESULT SessionFlagUseDigest(out int32 flags) mut => VT.SessionFlagUseDigest(ref this, out flags);
			public HRESULT SessionFlagUseNegotiate(out int32 flags) mut => VT.SessionFlagUseNegotiate(ref this, out flags);
			public HRESULT SessionFlagUseBasic(out int32 flags) mut => VT.SessionFlagUseBasic(ref this, out flags);
			public HRESULT SessionFlagUseKerberos(out int32 flags) mut => VT.SessionFlagUseKerberos(ref this, out flags);
			public HRESULT SessionFlagNoEncryption(out int32 flags) mut => VT.SessionFlagNoEncryption(ref this, out flags);
			public HRESULT SessionFlagEnableSPNServerPort(out int32 flags) mut => VT.SessionFlagEnableSPNServerPort(ref this, out flags);
			public HRESULT SessionFlagUseNoAuthentication(out int32 flags) mut => VT.SessionFlagUseNoAuthentication(ref this, out flags);
			public HRESULT EnumerationFlagNonXmlText(out int32 flags) mut => VT.EnumerationFlagNonXmlText(ref this, out flags);
			public HRESULT EnumerationFlagReturnEPR(out int32 flags) mut => VT.EnumerationFlagReturnEPR(ref this, out flags);
			public HRESULT EnumerationFlagReturnObjectAndEPR(out int32 flags) mut => VT.EnumerationFlagReturnObjectAndEPR(ref this, out flags);
			public HRESULT GetErrorMessage(uint32 errorNumber, out BSTR errorMessage) mut => VT.GetErrorMessage(ref this, errorNumber, out errorMessage);
			public HRESULT EnumerationFlagHierarchyDeep(out int32 flags) mut => VT.EnumerationFlagHierarchyDeep(ref this, out flags);
			public HRESULT EnumerationFlagHierarchyShallow(out int32 flags) mut => VT.EnumerationFlagHierarchyShallow(ref this, out flags);
			public HRESULT EnumerationFlagHierarchyDeepBasePropsOnly(out int32 flags) mut => VT.EnumerationFlagHierarchyDeepBasePropsOnly(ref this, out flags);
			public HRESULT EnumerationFlagReturnObject(out int32 flags) mut => VT.EnumerationFlagReturnObject(ref this, out flags);

			[CRepr]
			public struct VTable : IWSMan.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, BSTR strResourceLocator, out IDispatch* newResourceLocator) CreateResourceLocator;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagUTF8;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagCredUsernamePassword;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagSkipCACheck;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagSkipCNCheck;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagUseDigest;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagUseNegotiate;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagUseBasic;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagUseKerberos;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagNoEncryption;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagEnableSPNServerPort;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) SessionFlagUseNoAuthentication;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagNonXmlText;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagReturnEPR;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagReturnObjectAndEPR;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, uint32 errorNumber, out BSTR errorMessage) GetErrorMessage;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagHierarchyDeep;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagHierarchyShallow;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagHierarchyDeepBasePropsOnly;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx self, out int32 flags) EnumerationFlagReturnObject;
			}
		}
		[CRepr]
		public struct IWSManEx2 : IWSManEx
		{
			public const new Guid IID = .(0x1d1b5ae0, 0x42d9, 0x4021, 0x82, 0x61, 0x39, 0x87, 0x61, 0x95, 0x12, 0xe9);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SessionFlagUseClientCertificate(out int32 flags) mut => VT.SessionFlagUseClientCertificate(ref this, out flags);

			[CRepr]
			public struct VTable : IWSManEx.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx2 self, out int32 flags) SessionFlagUseClientCertificate;
			}
		}
		[CRepr]
		public struct IWSManEx3 : IWSManEx2
		{
			public const new Guid IID = .(0x6400e966, 0x011d, 0x4eac, 0x84, 0x74, 0x04, 0x9e, 0x08, 0x48, 0xaf, 0xad);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SessionFlagUTF16(out int32 flags) mut => VT.SessionFlagUTF16(ref this, out flags);
			public HRESULT SessionFlagUseCredSsp(out int32 flags) mut => VT.SessionFlagUseCredSsp(ref this, out flags);
			public HRESULT EnumerationFlagAssociationInstance(out int32 flags) mut => VT.EnumerationFlagAssociationInstance(ref this, out flags);
			public HRESULT EnumerationFlagAssociatedInstance(out int32 flags) mut => VT.EnumerationFlagAssociatedInstance(ref this, out flags);
			public HRESULT SessionFlagSkipRevocationCheck(out int32 flags) mut => VT.SessionFlagSkipRevocationCheck(ref this, out flags);
			public HRESULT SessionFlagAllowNegotiateImplicitCredentials(out int32 flags) mut => VT.SessionFlagAllowNegotiateImplicitCredentials(ref this, out flags);
			public HRESULT SessionFlagUseSsl(out int32 flags) mut => VT.SessionFlagUseSsl(ref this, out flags);

			[CRepr]
			public struct VTable : IWSManEx2.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) SessionFlagUTF16;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) SessionFlagUseCredSsp;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) EnumerationFlagAssociationInstance;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) EnumerationFlagAssociatedInstance;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) SessionFlagSkipRevocationCheck;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) SessionFlagAllowNegotiateImplicitCredentials;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEx3 self, out int32 flags) SessionFlagUseSsl;
			}
		}
		[CRepr]
		public struct IWSManConnectionOptions : IDispatch
		{
			public const new Guid IID = .(0xf704e861, 0x9e52, 0x464f, 0xb7, 0x86, 0xda, 0x5e, 0xb2, 0x32, 0x0f, 0xdd);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT get_UserName(out BSTR name) mut => VT.get_UserName(ref this, out name);
			public HRESULT put_UserName(BSTR name) mut => VT.put_UserName(ref this, name);
			public HRESULT put_Password(BSTR password) mut => VT.put_Password(ref this, password);

			[CRepr]
			public struct VTable : IDispatch.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptions self, out BSTR name) get_UserName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptions self, BSTR name) put_UserName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptions self, BSTR password) put_Password;
			}
		}
		[CRepr]
		public struct IWSManConnectionOptionsEx : IWSManConnectionOptions
		{
			public const new Guid IID = .(0xef43edf7, 0x2a48, 0x4d93, 0x95, 0x26, 0x8b, 0xd6, 0xab, 0x6d, 0x4a, 0x6b);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT get_CertificateThumbprint(out BSTR thumbprint) mut => VT.get_CertificateThumbprint(ref this, out thumbprint);
			public HRESULT put_CertificateThumbprint(BSTR thumbprint) mut => VT.put_CertificateThumbprint(ref this, thumbprint);

			[CRepr]
			public struct VTable : IWSManConnectionOptions.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx self, out BSTR thumbprint) get_CertificateThumbprint;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx self, BSTR thumbprint) put_CertificateThumbprint;
			}
		}
		[CRepr]
		public struct IWSManConnectionOptionsEx2 : IWSManConnectionOptionsEx
		{
			public const new Guid IID = .(0xf500c9ec, 0x24ee, 0x48ab, 0xb3, 0x8d, 0xfc, 0x9a, 0x16, 0x4c, 0x65, 0x8e);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetProxy(int32 accessType, int32 authenticationMechanism, BSTR userName, BSTR password) mut => VT.SetProxy(ref this, accessType, authenticationMechanism, userName, password);
			public HRESULT ProxyIEConfig(out int32 value) mut => VT.ProxyIEConfig(ref this, out value);
			public HRESULT ProxyWinHttpConfig(out int32 value) mut => VT.ProxyWinHttpConfig(ref this, out value);
			public HRESULT ProxyAutoDetect(out int32 value) mut => VT.ProxyAutoDetect(ref this, out value);
			public HRESULT ProxyNoProxyServer(out int32 value) mut => VT.ProxyNoProxyServer(ref this, out value);
			public HRESULT ProxyAuthenticationUseNegotiate(out int32 value) mut => VT.ProxyAuthenticationUseNegotiate(ref this, out value);
			public HRESULT ProxyAuthenticationUseBasic(out int32 value) mut => VT.ProxyAuthenticationUseBasic(ref this, out value);
			public HRESULT ProxyAuthenticationUseDigest(out int32 value) mut => VT.ProxyAuthenticationUseDigest(ref this, out value);

			[CRepr]
			public struct VTable : IWSManConnectionOptionsEx.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, int32 accessType, int32 authenticationMechanism, BSTR userName, BSTR password) SetProxy;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyIEConfig;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyWinHttpConfig;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyAutoDetect;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyNoProxyServer;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyAuthenticationUseNegotiate;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyAuthenticationUseBasic;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManConnectionOptionsEx2 self, out int32 value) ProxyAuthenticationUseDigest;
			}
		}
		[CRepr]
		public struct IWSManSession : IDispatch
		{
			public const new Guid IID = .(0xfc84fc58, 0x1286, 0x40c4, 0x9d, 0xa0, 0xc8, 0xef, 0x6e, 0xc2, 0x41, 0xe0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Get(VARIANT resourceUri, int32 flags, out BSTR resource) mut => VT.Get(ref this, resourceUri, flags, out resource);
			public HRESULT Put(VARIANT resourceUri, BSTR resource, int32 flags, out BSTR resultResource) mut => VT.Put(ref this, resourceUri, resource, flags, out resultResource);
			public HRESULT Create(VARIANT resourceUri, BSTR resource, int32 flags, out BSTR newUri) mut => VT.Create(ref this, resourceUri, resource, flags, out newUri);
			public HRESULT Delete(VARIANT resourceUri, int32 flags) mut => VT.Delete(ref this, resourceUri, flags);
			public HRESULT Invoke(BSTR actionUri, VARIANT resourceUri, BSTR parameters, int32 flags, out BSTR result) mut => VT.Invoke(ref this, actionUri, resourceUri, parameters, flags, out result);
			public HRESULT Enumerate(VARIANT resourceUri, BSTR filter, BSTR dialect, int32 flags, out IDispatch* resultSet) mut => VT.Enumerate(ref this, resourceUri, filter, dialect, flags, out resultSet);
			public HRESULT Identify(int32 flags, out BSTR result) mut => VT.Identify(ref this, flags, out result);
			public HRESULT get_Error(out BSTR value) mut => VT.get_Error(ref this, out value);
			public HRESULT get_BatchItems(out int32 value) mut => VT.get_BatchItems(ref this, out value);
			public HRESULT put_BatchItems(int32 value) mut => VT.put_BatchItems(ref this, value);
			public HRESULT get_Timeout(out int32 value) mut => VT.get_Timeout(ref this, out value);
			public HRESULT put_Timeout(int32 value) mut => VT.put_Timeout(ref this, value);

			[CRepr]
			public struct VTable : IDispatch.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, VARIANT resourceUri, int32 flags, out BSTR resource) Get;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, VARIANT resourceUri, BSTR resource, int32 flags, out BSTR resultResource) Put;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, VARIANT resourceUri, BSTR resource, int32 flags, out BSTR newUri) Create;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, VARIANT resourceUri, int32 flags) Delete;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, BSTR actionUri, VARIANT resourceUri, BSTR parameters, int32 flags, out BSTR result) Invoke;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, VARIANT resourceUri, BSTR filter, BSTR dialect, int32 flags, out IDispatch* resultSet) Enumerate;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, int32 flags, out BSTR result) Identify;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, out BSTR value) get_Error;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, out int32 value) get_BatchItems;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, int32 value) put_BatchItems;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, out int32 value) get_Timeout;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManSession self, int32 value) put_Timeout;
			}
		}
		[CRepr]
		public struct IWSManEnumerator : IDispatch
		{
			public const new Guid IID = .(0xf3457ca9, 0xabb9, 0x4fa5, 0xb8, 0x50, 0x90, 0xe8, 0xca, 0x30, 0x0e, 0x7f);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT ReadItem(out BSTR resource) mut => VT.ReadItem(ref this, out resource);
			public HRESULT get_AtEndOfStream(out int16 eos) mut => VT.get_AtEndOfStream(ref this, out eos);
			public HRESULT get_Error(out BSTR value) mut => VT.get_Error(ref this, out value);

			[CRepr]
			public struct VTable : IDispatch.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEnumerator self, out BSTR resource) ReadItem;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEnumerator self, out int16 eos) get_AtEndOfStream;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManEnumerator self, out BSTR value) get_Error;
			}
		}
		[CRepr]
		public struct IWSManResourceLocator : IDispatch
		{
			public const new Guid IID = .(0xa7a1ba28, 0xde41, 0x466a, 0xad, 0x0a, 0xc4, 0x05, 0x9e, 0xad, 0x74, 0x28);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT put_ResourceURI(BSTR uri) mut => VT.put_ResourceURI(ref this, uri);
			public HRESULT get_ResourceURI(out BSTR uri) mut => VT.get_ResourceURI(ref this, out uri);
			public HRESULT AddSelector(BSTR resourceSelName, VARIANT selValue) mut => VT.AddSelector(ref this, resourceSelName, selValue);
			public HRESULT ClearSelectors() mut => VT.ClearSelectors(ref this);
			public HRESULT get_FragmentPath(out BSTR text) mut => VT.get_FragmentPath(ref this, out text);
			public HRESULT put_FragmentPath(BSTR text) mut => VT.put_FragmentPath(ref this, text);
			public HRESULT get_FragmentDialect(out BSTR text) mut => VT.get_FragmentDialect(ref this, out text);
			public HRESULT put_FragmentDialect(BSTR text) mut => VT.put_FragmentDialect(ref this, text);
			public HRESULT AddOption(BSTR OptionName, VARIANT OptionValue, BOOL mustComply) mut => VT.AddOption(ref this, OptionName, OptionValue, mustComply);
			public HRESULT put_MustUnderstandOptions(BOOL mustUnderstand) mut => VT.put_MustUnderstandOptions(ref this, mustUnderstand);
			public HRESULT get_MustUnderstandOptions(out BOOL mustUnderstand) mut => VT.get_MustUnderstandOptions(ref this, out mustUnderstand);
			public HRESULT ClearOptions() mut => VT.ClearOptions(ref this);
			public HRESULT get_Error(out BSTR value) mut => VT.get_Error(ref this, out value);

			[CRepr]
			public struct VTable : IDispatch.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, BSTR uri) put_ResourceURI;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, out BSTR uri) get_ResourceURI;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, BSTR resourceSelName, VARIANT selValue) AddSelector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self) ClearSelectors;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, out BSTR text) get_FragmentPath;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, BSTR text) put_FragmentPath;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, out BSTR text) get_FragmentDialect;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, BSTR text) put_FragmentDialect;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, BSTR OptionName, VARIANT OptionValue, BOOL mustComply) AddOption;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, BOOL mustUnderstand) put_MustUnderstandOptions;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, out BOOL mustUnderstand) get_MustUnderstandOptions;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self) ClearOptions;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManResourceLocator self, out BSTR value) get_Error;
			}
		}
		[CRepr]
		public struct IWSManResourceLocatorInternal : IUnknown
		{
			public const new Guid IID = .(0xeffaead7, 0x7ec8, 0x4716, 0xb9, 0xbe, 0xf2, 0xe7, 0xe9, 0xfb, 0x4a, 0xdb);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : IUnknown.VTable {}
		}
		[CRepr]
		public struct IWSManInternal : IDispatch
		{
			public const new Guid IID = .(0x04ae2b1d, 0x9954, 0x4d99, 0x94, 0xa9, 0xa9, 0x61, 0xe7, 0x2c, 0x3a, 0x13);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT ConfigSDDL(ref IDispatch session, VARIANT resourceUri, int32 flags, out BSTR resource) mut => VT.ConfigSDDL(ref this, ref session, resourceUri, flags, out resource);

			[CRepr]
			public struct VTable : IDispatch.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref IWSManInternal self, ref IDispatch session, VARIANT resourceUri, int32 flags, out BSTR resource) ConfigSDDL;
			}
		}
		
		// --- Functions ---
		
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManInitialize(uint32 flags, out WSMAN_API* apiHandle);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManDeinitialize(WSMAN_API* apiHandle, uint32 flags);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManGetErrorMessage(ref WSMAN_API apiHandle, uint32 flags, PWSTR languageCode, uint32 errorCode, uint32 messageLength, char16* message, out uint32 messageLengthUsed);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManCreateSession(ref WSMAN_API apiHandle, PWSTR connection, uint32 flags, WSMAN_AUTHENTICATION_CREDENTIALS* serverAuthenticationCredentials, WSMAN_PROXY_INFO* proxyInfo, out WSMAN_SESSION* session);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManCloseSession(WSMAN_SESSION* session, uint32 flags);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManSetSessionOption(ref WSMAN_SESSION session, WSManSessionOption option, ref WSMAN_DATA data);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManGetSessionOptionAsDword(ref WSMAN_SESSION session, WSManSessionOption option, out uint32 value);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManGetSessionOptionAsString(ref WSMAN_SESSION session, WSManSessionOption option, uint32 stringLength, char16* string, out uint32 stringLengthUsed);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManCloseOperation(WSMAN_OPERATION* operationHandle, uint32 flags);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManCreateShell(out WSMAN_SESSION session, uint32 flags, PWSTR resourceUri, WSMAN_SHELL_STARTUP_INFO_V11* startupInfo, WSMAN_OPTION_SET* options, WSMAN_DATA* createXml, ref WSMAN_SHELL_ASYNC async, out WSMAN_SHELL* shell);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManRunShellCommand(out WSMAN_SHELL shell, uint32 flags, PWSTR commandLine, WSMAN_COMMAND_ARG_SET* args, WSMAN_OPTION_SET* options, ref WSMAN_SHELL_ASYNC async, out WSMAN_COMMAND* command);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManSignalShell(ref WSMAN_SHELL shell, WSMAN_COMMAND* command, uint32 flags, PWSTR code, ref WSMAN_SHELL_ASYNC async, out WSMAN_OPERATION* signalOperation);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManReceiveShellOutput(out WSMAN_SHELL shell, WSMAN_COMMAND* command, uint32 flags, WSMAN_STREAM_ID_SET* desiredStreamSet, ref WSMAN_SHELL_ASYNC async, out WSMAN_OPERATION* receiveOperation);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManSendShellInput(ref WSMAN_SHELL shell, WSMAN_COMMAND* command, uint32 flags, PWSTR streamId, ref WSMAN_DATA streamData, BOOL endOfStream, ref WSMAN_SHELL_ASYNC async, out WSMAN_OPERATION* sendOperation);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManCloseCommand(WSMAN_COMMAND* commandHandle, uint32 flags, ref WSMAN_SHELL_ASYNC async);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManCloseShell(WSMAN_SHELL* shellHandle, uint32 flags, ref WSMAN_SHELL_ASYNC async);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManCreateShellEx(out WSMAN_SESSION session, uint32 flags, PWSTR resourceUri, PWSTR shellId, WSMAN_SHELL_STARTUP_INFO_V11* startupInfo, WSMAN_OPTION_SET* options, WSMAN_DATA* createXml, ref WSMAN_SHELL_ASYNC async, out WSMAN_SHELL* shell);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManRunShellCommandEx(out WSMAN_SHELL shell, uint32 flags, PWSTR commandId, PWSTR commandLine, WSMAN_COMMAND_ARG_SET* args, WSMAN_OPTION_SET* options, ref WSMAN_SHELL_ASYNC async, out WSMAN_COMMAND* command);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManDisconnectShell(out WSMAN_SHELL shell, uint32 flags, ref WSMAN_SHELL_DISCONNECT_INFO disconnectInfo, ref WSMAN_SHELL_ASYNC async);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManReconnectShell(out WSMAN_SHELL shell, uint32 flags, ref WSMAN_SHELL_ASYNC async);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManReconnectShellCommand(out WSMAN_COMMAND commandHandle, uint32 flags, ref WSMAN_SHELL_ASYNC async);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManConnectShell(out WSMAN_SESSION session, uint32 flags, PWSTR resourceUri, PWSTR shellID, WSMAN_OPTION_SET* options, WSMAN_DATA* connectXml, ref WSMAN_SHELL_ASYNC async, out WSMAN_SHELL* shell);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern void WSManConnectShellCommand(out WSMAN_SHELL shell, uint32 flags, PWSTR commandID, WSMAN_OPTION_SET* options, WSMAN_DATA* connectXml, ref WSMAN_SHELL_ASYNC async, out WSMAN_COMMAND* command);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginReportContext(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, void* context);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginReceiveResult(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, PWSTR stream, WSMAN_DATA* streamResult, PWSTR commandState, uint32 exitCode);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginOperationComplete(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, uint32 errorCode, PWSTR extendedInformation);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginGetOperationParameters(ref WSMAN_PLUGIN_REQUEST requestDetails, uint32 flags, out WSMAN_DATA data);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginGetConfiguration(void* pluginContext, uint32 flags, out WSMAN_DATA data);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginReportCompletion(void* pluginContext, uint32 flags);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginFreeRequestDetails(ref WSMAN_PLUGIN_REQUEST requestDetails);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginAuthzUserComplete(ref WSMAN_SENDER_DETAILS senderDetails, uint32 flags, void* userAuthorizationContext, HANDLE impersonationToken, BOOL userIsAdministrator, uint32 errorCode, PWSTR extendedErrorInformation);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginAuthzOperationComplete(ref WSMAN_SENDER_DETAILS senderDetails, uint32 flags, void* userAuthorizationContext, uint32 errorCode, PWSTR extendedErrorInformation);
		[Import("wsmsvc.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern uint32 WSManPluginAuthzQueryQuotaComplete(ref WSMAN_SENDER_DETAILS senderDetails, uint32 flags, WSMAN_AUTHZ_QUOTA* quota, uint32 errorCode, PWSTR extendedErrorInformation);
	}
}
