[1166] | 1 | /**
|
---|
| 2 | * This file is part of the mingw-w64 runtime package.
|
---|
| 3 | * No warranty is given; refer to the file DISCLAIMER within this package.
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | #include <winapifamily.h>
|
---|
| 7 |
|
---|
| 8 | #ifndef _WSMAN_H_
|
---|
| 9 | #define _WSMAN_H_
|
---|
| 10 |
|
---|
| 11 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
|
---|
| 12 |
|
---|
| 13 | #if !defined (WSMAN_API_VERSION_1_0) && !defined (WSMAN_API_VERSION_1_1)
|
---|
| 14 | #error Either WSMAN_API_VERSION_1_0 or WSMAN_API_VERSION_1_1 need to be defined before including this header.
|
---|
| 15 | #endif
|
---|
| 16 |
|
---|
| 17 | #define WSMAN_FLAG_REQUESTED_API_VERSION_1_0 0x0
|
---|
| 18 | #define WSMAN_FLAG_REQUESTED_API_VERSION_1_1 0x1
|
---|
| 19 |
|
---|
| 20 | #define WSMAN_OPERATION_INFOV1 0x00000000
|
---|
| 21 | #define WSMAN_OPERATION_INFOV2 0xaabbccdd
|
---|
| 22 |
|
---|
| 23 | #define WSMAN_STREAM_ID_STDIN L"stdin"
|
---|
| 24 | #define WSMAN_STREAM_ID_STDOUT L"stdout"
|
---|
| 25 | #define WSMAN_STREAM_ID_STDERR L"stderr"
|
---|
| 26 |
|
---|
| 27 | #define WSMAN_DEFAULT_TIMEOUT_MS 60000
|
---|
| 28 |
|
---|
| 29 | #define WSMAN_FLAG_RECEIVE_RESULT_NO_MORE_DATA 1
|
---|
| 30 | #define WSMAN_FLAG_RECEIVE_FLUSH 2
|
---|
| 31 | #define WSMAN_FLAG_RECEIVE_RESULT_DATA_BOUNDARY 4
|
---|
| 32 |
|
---|
| 33 | #define WSMAN_PLUGIN_PARAMS_MAX_ENVELOPE_SIZE 1
|
---|
| 34 | #define WSMAN_PLUGIN_PARAMS_TIMEOUT 2
|
---|
| 35 | #define WSMAN_PLUGIN_PARAMS_REMAINING_RESULT_SIZE 3
|
---|
| 36 | #define WSMAN_PLUGIN_PARAMS_LARGEST_RESULT_SIZE 4
|
---|
| 37 | #define WSMAN_PLUGIN_PARAMS_GET_REQUESTED_LOCALE 5
|
---|
| 38 | #define WSMAN_PLUGIN_PARAMS_GET_REQUESTED_DATA_LOCALE 6
|
---|
| 39 |
|
---|
| 40 | #define WSMAN_PLUGIN_PARAMS_SHAREDHOST 1
|
---|
| 41 | #define WSMAN_PLUGIN_PARAMS_RUNAS_USER 2
|
---|
| 42 | #define WSMAN_PLUGIN_PARAMS_AUTORESTART 3
|
---|
| 43 | #define WSMAN_PLUGIN_PARAMS_HOSTIDLETIMEOUTSECONDS 4
|
---|
| 44 | #define WSMAN_PLUGIN_PARAMS_NAME 5
|
---|
| 45 |
|
---|
| 46 | #define WSMAN_PLUGIN_STARTUP_REQUEST_RECEIVED 0x0
|
---|
| 47 | #define WSMAN_PLUGIN_STARTUP_AUTORESTARTED_REBOOT 0x1
|
---|
| 48 | #define WSMAN_PLUGIN_STARTUP_AUTORESTARTED_CRASH 0x2
|
---|
| 49 |
|
---|
| 50 | #define WSMAN_PLUGIN_SHUTDOWN_SYSTEM 1
|
---|
| 51 | #define WSMAN_PLUGIN_SHUTDOWN_SERVICE 2
|
---|
| 52 | #define WSMAN_PLUGIN_SHUTDOWN_IISHOST 3
|
---|
| 53 | #define WSMAN_PLUGIN_SHUTDOWN_IDLETIMEOUT_ELAPSED 4
|
---|
| 54 |
|
---|
| 55 | #define WSMAN_FLAG_SEND_NO_MORE_DATA 1
|
---|
| 56 |
|
---|
| 57 | #define WSMAN_SHELL_NS L"http://schemas.microsoft.com/wbem/wsman/1/windows/shell"
|
---|
| 58 | #define WSMAN_SHELL_NS_LEN (sizeof (WSMAN_SHELL_NS)/sizeof (WCHAR)-1)
|
---|
| 59 |
|
---|
| 60 | #define WSMAN_CMDSHELL_URI WSMAN_SHELL_NS L"/cmd"
|
---|
| 61 |
|
---|
| 62 | #define WSMAN_CMDSHELL_OPTION_CODEPAGE L"WINRS_CODEPAGE"
|
---|
| 63 | #define WSMAN_SHELL_OPTION_NOPROFILE L"WINRS_NOPROFILE"
|
---|
| 64 |
|
---|
| 65 | #define WSMAN_CMDSHELL_OPTION_CONSOLEMODE_STDIN L"WINRS_CONSOLEMODE_STDIN"
|
---|
| 66 | #define WSMAN_CMDSHELL_OPTION_SKIP_CMD_SHELL L"WINRS_SKIP_CMD_SHELL"
|
---|
| 67 |
|
---|
| 68 | #define WSMAN_COMMAND_STATE_DONE WSMAN_SHELL_NS L"/CommandState/Done"
|
---|
| 69 | #define WSMAN_COMMAND_STATE_PENDING WSMAN_SHELL_NS L"/CommandState/Pending"
|
---|
| 70 | #define WSMAN_COMMAND_STATE_RUNNING WSMAN_SHELL_NS L"/CommandState/Running"
|
---|
| 71 |
|
---|
| 72 | #define WSMAN_SIGNAL_SHELL_CODE_TERMINATE WSMAN_SHELL_NS L"/signal/terminate"
|
---|
| 73 | #define WSMAN_SIGNAL_SHELL_CODE_CTRL_C WSMAN_SHELL_NS L"/signal/ctrl_c"
|
---|
| 74 | #define WSMAN_SIGNAL_SHELL_CODE_CTRL_BREAK WSMAN_SHELL_NS L"/signal/ctrl_break"
|
---|
| 75 |
|
---|
| 76 | #ifdef __cplusplus
|
---|
| 77 | extern "C" {
|
---|
| 78 | #endif
|
---|
| 79 |
|
---|
| 80 | typedef enum WSManDataType {
|
---|
| 81 | WSMAN_DATA_NONE = 0,
|
---|
| 82 | WSMAN_DATA_TYPE_TEXT = 1,
|
---|
| 83 | WSMAN_DATA_TYPE_BINARY = 2,
|
---|
| 84 | WSMAN_DATA_TYPE_DWORD = 4
|
---|
| 85 | } WSManDataType;
|
---|
| 86 |
|
---|
| 87 | typedef enum WSManAuthenticationFlags {
|
---|
| 88 | WSMAN_FLAG_DEFAULT_AUTHENTICATION = 0x0,
|
---|
| 89 | WSMAN_FLAG_NO_AUTHENTICATION = 0x1,
|
---|
| 90 | WSMAN_FLAG_AUTH_DIGEST = 0x2,
|
---|
| 91 | WSMAN_FLAG_AUTH_NEGOTIATE = 0x4,
|
---|
| 92 | WSMAN_FLAG_AUTH_BASIC = 0x8,
|
---|
| 93 | WSMAN_FLAG_AUTH_KERBEROS = 0x10,
|
---|
| 94 | WSMAN_FLAG_AUTH_CLIENT_CERTIFICATE = 0x20
|
---|
| 95 | #if WINVER >= 0x600
|
---|
| 96 | ,WSMAN_FLAG_AUTH_CREDSSP = 0x80
|
---|
| 97 | #endif
|
---|
| 98 | } WSManAuthenticationFlags;
|
---|
| 99 |
|
---|
| 100 | enum WSManProxyAccessType {
|
---|
| 101 | WSMAN_OPTION_PROXY_IE_PROXY_CONFIG = 1,
|
---|
| 102 | WSMAN_OPTION_PROXY_WINHTTP_PROXY_CONFIG = 2,
|
---|
| 103 | WSMAN_OPTION_PROXY_AUTO_DETECT = 4,
|
---|
| 104 | WSMAN_OPTION_PROXY_NO_PROXY_SERVER = 8,
|
---|
| 105 | };
|
---|
| 106 |
|
---|
| 107 | typedef enum WSManSessionOption {
|
---|
| 108 | WSMAN_OPTION_DEFAULT_OPERATION_TIMEOUTMS = 1,
|
---|
| 109 | WSMAN_OPTION_MAX_RETRY_TIME = 11,
|
---|
| 110 | WSMAN_OPTION_TIMEOUTMS_CREATE_SHELL = 12,
|
---|
| 111 | WSMAN_OPTION_TIMEOUTMS_RUN_SHELL_COMMAND = 13,
|
---|
| 112 | WSMAN_OPTION_TIMEOUTMS_RECEIVE_SHELL_OUTPUT = 14,
|
---|
| 113 | WSMAN_OPTION_TIMEOUTMS_SEND_SHELL_INPUT = 15,
|
---|
| 114 | WSMAN_OPTION_TIMEOUTMS_SIGNAL_SHELL = 16,
|
---|
| 115 | WSMAN_OPTION_TIMEOUTMS_CLOSE_SHELL = 17,
|
---|
| 116 | WSMAN_OPTION_SKIP_CA_CHECK = 18,
|
---|
| 117 | WSMAN_OPTION_SKIP_CN_CHECK = 19,
|
---|
| 118 | WSMAN_OPTION_UNENCRYPTED_MESSAGES = 20,
|
---|
| 119 | WSMAN_OPTION_UTF16 = 21,
|
---|
| 120 | WSMAN_OPTION_ENABLE_SPN_SERVER_PORT = 22,
|
---|
| 121 | WSMAN_OPTION_MACHINE_ID = 23,
|
---|
| 122 | WSMAN_OPTION_LOCALE = 25,
|
---|
| 123 | WSMAN_OPTION_UI_LANGUAGE = 26,
|
---|
| 124 | WSMAN_OPTION_MAX_ENVELOPE_SIZE_KB = 28,
|
---|
| 125 | WSMAN_OPTION_SHELL_MAX_DATA_SIZE_PER_MESSAGE_KB = 29,
|
---|
| 126 | WSMAN_OPTION_REDIRECT_LOCATION = 30,
|
---|
| 127 | WSMAN_OPTION_SKIP_REVOCATION_CHECK = 31,
|
---|
| 128 | WSMAN_OPTION_ALLOW_NEGOTIATE_IMPLICIT_CREDENTIALS = 32,
|
---|
| 129 | WSMAN_OPTION_USE_SSL = 33,
|
---|
| 130 | WSMAN_OPTION_USE_INTEARACTIVE_TOKEN = 34
|
---|
| 131 | } WSManSessionOption;
|
---|
| 132 |
|
---|
| 133 | typedef enum WSManShellFlag {
|
---|
| 134 | WSMAN_FLAG_NO_COMPRESSION = 0x1,
|
---|
| 135 | WSMAN_FLAG_DELETE_SERVER_SESSION = 0x2,
|
---|
| 136 | WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP = 0x4,
|
---|
| 137 | WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK = 0x8,
|
---|
| 138 | WSMAN_FLAG_RECEIVE_DELAY_OUTPUT_STREAM = 0x10
|
---|
| 139 | } WSManShellFlag;
|
---|
| 140 |
|
---|
| 141 | typedef enum WSManCallbackFlags {
|
---|
| 142 | WSMAN_FLAG_CALLBACK_END_OF_OPERATION = 0x1,
|
---|
| 143 | WSMAN_FLAG_CALLBACK_END_OF_STREAM = 0x8,
|
---|
| 144 | WSMAN_FLAG_CALLBACK_SHELL_SUPPORTS_DISCONNECT = 0x20,
|
---|
| 145 | WSMAN_FLAG_CALLBACK_SHELL_AUTODISCONNECTED = 0x40,
|
---|
| 146 | WSMAN_FLAG_CALLBACK_NETWORK_FAILURE_DETECTED = 0x100,
|
---|
| 147 | WSMAN_FLAG_CALLBACK_RETRYING_AFTER_NETWORK_FAILURE = 0x200,
|
---|
| 148 | WSMAN_FLAG_CALLBACK_RECONNECTED_AFTER_NETWORK_FAILURE = 0x400,
|
---|
| 149 | WSMAN_FLAG_CALLBACK_SHELL_AUTODISCONNECTING = 0x800,
|
---|
| 150 | WSMAN_FLAG_CALLBACK_RETRY_ABORTED_DUE_TO_INTERNAL_ERROR = 0x1000,
|
---|
| 151 | WSMAN_FLAG_CALLBACK_RECEIVE_DELAY_STREAM_REQUEST_PROCESSED = 0x2000
|
---|
| 152 | } WSManCallbackFlags;
|
---|
| 153 |
|
---|
| 154 | typedef struct _WSMAN_DATA_TEXT {
|
---|
| 155 | DWORD bufferLength;
|
---|
| 156 | PCWSTR buffer;
|
---|
| 157 | } WSMAN_DATA_TEXT;
|
---|
| 158 |
|
---|
| 159 | typedef struct _WSMAN_DATA_BINARY {
|
---|
| 160 | DWORD dataLength;
|
---|
| 161 | BYTE *data;
|
---|
| 162 | } WSMAN_DATA_BINARY;
|
---|
| 163 |
|
---|
| 164 | typedef struct _WSMAN_DATA {
|
---|
| 165 | WSManDataType type;
|
---|
| 166 | __C89_NAMELESS union {
|
---|
| 167 | WSMAN_DATA_TEXT text;
|
---|
| 168 | WSMAN_DATA_BINARY binaryData;
|
---|
| 169 | DWORD number;
|
---|
| 170 | };
|
---|
| 171 | } WSMAN_DATA;
|
---|
| 172 |
|
---|
| 173 | typedef struct _WSMAN_ERROR {
|
---|
| 174 | DWORD code;
|
---|
| 175 | PCWSTR errorDetail;
|
---|
| 176 | PCWSTR language;
|
---|
| 177 | PCWSTR machineName;
|
---|
| 178 | PCWSTR pluginName;
|
---|
| 179 | } WSMAN_ERROR;
|
---|
| 180 |
|
---|
| 181 | typedef struct _WSMAN_USERNAME_PASSWORD_CREDS {
|
---|
| 182 | PCWSTR username;
|
---|
| 183 | PCWSTR password;
|
---|
| 184 | } WSMAN_USERNAME_PASSWORD_CREDS;
|
---|
| 185 |
|
---|
| 186 | typedef struct _WSMAN_AUTHENTICATION_CREDENTIALS {
|
---|
| 187 | DWORD authenticationMechanism;
|
---|
| 188 | __C89_NAMELESS union {
|
---|
| 189 | WSMAN_USERNAME_PASSWORD_CREDS userAccount;
|
---|
| 190 | PCWSTR certificateThumbprint;
|
---|
| 191 | };
|
---|
| 192 | } WSMAN_AUTHENTICATION_CREDENTIALS;
|
---|
| 193 |
|
---|
| 194 | typedef struct _WSMAN_OPTION {
|
---|
| 195 | PCWSTR name;
|
---|
| 196 | PCWSTR value;
|
---|
| 197 | WINBOOL mustComply;
|
---|
| 198 | } WSMAN_OPTION;
|
---|
| 199 |
|
---|
| 200 | typedef struct _WSMAN_OPTION_SET {
|
---|
| 201 | DWORD optionsCount;
|
---|
| 202 | WSMAN_OPTION *options;
|
---|
| 203 | WINBOOL optionsMustUnderstand;
|
---|
| 204 | } WSMAN_OPTION_SET;
|
---|
| 205 |
|
---|
| 206 | typedef struct _WSMAN_OPTION_SETEX {
|
---|
| 207 | DWORD optionsCount;
|
---|
| 208 | WSMAN_OPTION *options;
|
---|
| 209 | WINBOOL optionsMustUnderstand;
|
---|
| 210 | PCWSTR *optionTypes;
|
---|
| 211 | } WSMAN_OPTION_SETEX;
|
---|
| 212 |
|
---|
| 213 | typedef struct _WSMAN_KEY {
|
---|
| 214 | PCWSTR key;
|
---|
| 215 | PCWSTR value;
|
---|
| 216 | } WSMAN_KEY;
|
---|
| 217 |
|
---|
| 218 | typedef struct _WSMAN_SELECTOR_SET {
|
---|
| 219 | DWORD numberKeys;
|
---|
| 220 | WSMAN_KEY *keys;
|
---|
| 221 | } WSMAN_SELECTOR_SET;
|
---|
| 222 |
|
---|
| 223 | typedef struct _WSMAN_FRAGMENT {
|
---|
| 224 | PCWSTR path;
|
---|
| 225 | PCWSTR dialect;
|
---|
| 226 | } WSMAN_FRAGMENT;
|
---|
| 227 |
|
---|
| 228 | typedef struct _WSMAN_FILTER {
|
---|
| 229 | PCWSTR filter;
|
---|
| 230 | PCWSTR dialect;
|
---|
| 231 | } WSMAN_FILTER;
|
---|
| 232 |
|
---|
| 233 | typedef struct _WSMAN_OPERATION_INFO {
|
---|
| 234 | WSMAN_FRAGMENT fragment;
|
---|
| 235 | WSMAN_FILTER filter;
|
---|
| 236 | WSMAN_SELECTOR_SET selectorSet;
|
---|
| 237 | WSMAN_OPTION_SET optionSet;
|
---|
| 238 | void *reserved;
|
---|
| 239 | DWORD version;
|
---|
| 240 | } WSMAN_OPERATION_INFO;
|
---|
| 241 |
|
---|
| 242 | typedef struct _WSMAN_OPERATION_INFOEX {
|
---|
| 243 | WSMAN_FRAGMENT fragment;
|
---|
| 244 | WSMAN_FILTER filter;
|
---|
| 245 | WSMAN_SELECTOR_SET selectorSet;
|
---|
| 246 | WSMAN_OPTION_SETEX optionSet;
|
---|
| 247 | DWORD version;
|
---|
| 248 | PCWSTR uiLocale;
|
---|
| 249 | PCWSTR dataLocale;
|
---|
| 250 | } WSMAN_OPERATION_INFOEX;
|
---|
| 251 |
|
---|
| 252 | typedef struct _WSMAN_PROXY_INFO {
|
---|
| 253 | DWORD accessType;
|
---|
| 254 | WSMAN_AUTHENTICATION_CREDENTIALS authenticationCredentials;
|
---|
| 255 | } WSMAN_PROXY_INFO;
|
---|
| 256 |
|
---|
| 257 | typedef struct WSMAN_API *WSMAN_API_HANDLE;
|
---|
| 258 | typedef struct WSMAN_SESSION *WSMAN_SESSION_HANDLE;
|
---|
| 259 | typedef struct WSMAN_OPERATION *WSMAN_OPERATION_HANDLE;
|
---|
| 260 | typedef struct WSMAN_SHELL *WSMAN_SHELL_HANDLE;
|
---|
| 261 | typedef struct WSMAN_COMMAND *WSMAN_COMMAND_HANDLE;
|
---|
| 262 |
|
---|
| 263 | typedef struct _WSMAN_STREAM_ID_SET {
|
---|
| 264 | DWORD streamIDsCount;
|
---|
| 265 | PCWSTR *streamIDs;
|
---|
| 266 | } WSMAN_STREAM_ID_SET;
|
---|
| 267 |
|
---|
| 268 | typedef struct _WSMAN_ENVIRONMENT_VARIABLE {
|
---|
| 269 | PCWSTR name;
|
---|
| 270 | PCWSTR value;
|
---|
| 271 | } WSMAN_ENVIRONMENT_VARIABLE;
|
---|
| 272 |
|
---|
| 273 | typedef struct _WSMAN_ENVIRONMENT_VARIABLE_SET {
|
---|
| 274 | DWORD varsCount;
|
---|
| 275 | WSMAN_ENVIRONMENT_VARIABLE *vars;
|
---|
| 276 | } WSMAN_ENVIRONMENT_VARIABLE_SET;
|
---|
| 277 |
|
---|
| 278 | typedef struct _WSMAN_SHELL_STARTUP_INFO_V10 {
|
---|
| 279 | WSMAN_STREAM_ID_SET *inputStreamSet;
|
---|
| 280 | WSMAN_STREAM_ID_SET *outputStreamSet;
|
---|
| 281 | DWORD idleTimeoutMs;
|
---|
| 282 | PCWSTR workingDirectory;
|
---|
| 283 | WSMAN_ENVIRONMENT_VARIABLE_SET *variableSet;
|
---|
| 284 | } WSMAN_SHELL_STARTUP_INFO_V10;
|
---|
| 285 |
|
---|
| 286 | typedef struct _WSMAN_SHELL_STARTUP_INFO_V11 {
|
---|
| 287 | WSMAN_STREAM_ID_SET *inputStreamSet;
|
---|
| 288 | WSMAN_STREAM_ID_SET *outputStreamSet;
|
---|
| 289 | DWORD idleTimeoutMs;
|
---|
| 290 | PCWSTR workingDirectory;
|
---|
| 291 | WSMAN_ENVIRONMENT_VARIABLE_SET *variableSet;
|
---|
| 292 | PCWSTR name;
|
---|
| 293 | } WSMAN_SHELL_STARTUP_INFO_V11;
|
---|
| 294 |
|
---|
| 295 | typedef struct _WSMAN_SHELL_DISCONNECT_INFO {
|
---|
| 296 | DWORD idleTimeoutMs;
|
---|
| 297 | } WSMAN_SHELL_DISCONNECT_INFO;
|
---|
| 298 |
|
---|
| 299 | typedef struct _WSMAN_RECEIVE_DATA_RESULT {
|
---|
| 300 | PCWSTR streamId;
|
---|
| 301 | WSMAN_DATA streamData;
|
---|
| 302 | PCWSTR commandState;
|
---|
| 303 | DWORD exitCode;
|
---|
| 304 | } WSMAN_RECEIVE_DATA_RESULT;
|
---|
| 305 |
|
---|
| 306 | #ifdef WSMAN_API_VERSION_1_0
|
---|
| 307 | typedef WSMAN_SHELL_STARTUP_INFO_V10 WSMAN_SHELL_STARTUP_INFO;
|
---|
| 308 | typedef void (CALLBACK *WSMAN_SHELL_COMPLETION_FUNCTION) (PVOID operationContext, DWORD flags, WSMAN_ERROR *error, WSMAN_SHELL_HANDLE shell, WSMAN_COMMAND_HANDLE command, WSMAN_OPERATION_HANDLE operationHandle, WSMAN_RECEIVE_DATA_RESULT *data);
|
---|
| 309 | #else
|
---|
| 310 | typedef WSMAN_SHELL_STARTUP_INFO_V11 WSMAN_SHELL_STARTUP_INFO;
|
---|
| 311 | typedef void (CALLBACK *WSMAN_SHELL_COMPLETION_FUNCTION) (PVOID operationContext, DWORD flags, WSMAN_ERROR *error, WSMAN_SHELL_HANDLE shell, WSMAN_COMMAND_HANDLE command, WSMAN_OPERATION_HANDLE operationHandle, WSMAN_RESPONSE_DATA *data);
|
---|
| 312 |
|
---|
| 313 | typedef struct _WSMAN_CONNECT_DATA {
|
---|
| 314 | WSMAN_DATA data;
|
---|
| 315 | } WSMAN_CONNECT_DATA;
|
---|
| 316 |
|
---|
| 317 | typedef struct _WSMAN_CREATE_SHELL_DATA {
|
---|
| 318 | WSMAN_DATA data;
|
---|
| 319 | } WSMAN_CREATE_SHELL_DATA;
|
---|
| 320 |
|
---|
| 321 | typedef union _WSMAN_RESPONSE_DATA {
|
---|
| 322 | WSMAN_RECEIVE_DATA_RESULT receiveData;
|
---|
| 323 | WSMAN_CONNECT_DATA connectData;
|
---|
| 324 | WSMAN_CREATE_SHELL_DATA createData;
|
---|
| 325 | } WSMAN_RESPONSE_DATA;
|
---|
| 326 | #endif
|
---|
| 327 |
|
---|
| 328 | typedef struct _WSMAN_SHELL_ASYNC {
|
---|
| 329 | PVOID operationContext;
|
---|
| 330 | WSMAN_SHELL_COMPLETION_FUNCTION completionFunction;
|
---|
| 331 | } WSMAN_SHELL_ASYNC;
|
---|
| 332 |
|
---|
| 333 | typedef struct _WSMAN_COMMAND_ARG_SET {
|
---|
| 334 | DWORD argsCount;
|
---|
| 335 | PCWSTR *args;
|
---|
| 336 | } WSMAN_COMMAND_ARG_SET;
|
---|
| 337 |
|
---|
| 338 | typedef struct _WSMAN_CERTIFICATE_DETAILS {
|
---|
| 339 | PCWSTR subject;
|
---|
| 340 | PCWSTR issuerName;
|
---|
| 341 | PCWSTR issuerThumbprint;
|
---|
| 342 | PCWSTR subjectName;
|
---|
| 343 | } WSMAN_CERTIFICATE_DETAILS;
|
---|
| 344 |
|
---|
| 345 | typedef struct _WSMAN_SENDER_DETAILS {
|
---|
| 346 | PCWSTR senderName;
|
---|
| 347 | PCWSTR authenticationMechanism;
|
---|
| 348 | WSMAN_CERTIFICATE_DETAILS *certificateDetails;
|
---|
| 349 | HANDLE clientToken;
|
---|
| 350 | PCWSTR httpURL;
|
---|
| 351 | } WSMAN_SENDER_DETAILS;
|
---|
| 352 |
|
---|
| 353 | typedef struct _WSMAN_PLUGIN_REQUEST {
|
---|
| 354 | WSMAN_SENDER_DETAILS *senderDetails;
|
---|
| 355 | PCWSTR locale;
|
---|
| 356 | PCWSTR resourceUri;
|
---|
| 357 | WSMAN_OPERATION_INFO *operationInfo;
|
---|
| 358 | volatile WINBOOL shutdownNotification;
|
---|
| 359 | HANDLE shutdownNotificationHandle;
|
---|
| 360 | PCWSTR dataLocale;
|
---|
| 361 | } WSMAN_PLUGIN_REQUEST;
|
---|
| 362 |
|
---|
| 363 | typedef struct _WSMAN_AUTHZ_QUOTA {
|
---|
| 364 | DWORD maxAllowedConcurrentShells;
|
---|
| 365 | DWORD maxAllowedConcurrentOperations;
|
---|
| 366 | DWORD timeslotSize;
|
---|
| 367 | DWORD maxAllowedOperationsPerTimeslot;
|
---|
| 368 | } WSMAN_AUTHZ_QUOTA;
|
---|
| 369 |
|
---|
| 370 | typedef VOID (WINAPI *WSMAN_PLUGIN_RELEASE_SHELL_CONTEXT) (PVOID shellContext);
|
---|
| 371 | typedef VOID (WINAPI *WSMAN_PLUGIN_RELEASE_COMMAND_CONTEXT) (PVOID shellContext, PVOID commandContext);
|
---|
| 372 | typedef DWORD (WINAPI *WSMAN_PLUGIN_STARTUP) (DWORD flags, PCWSTR applicationIdentification, PCWSTR extraInfo, PVOID *pluginContext);
|
---|
| 373 | typedef DWORD (WINAPI *WSMAN_PLUGIN_SHUTDOWN) (PVOID pluginContext, DWORD flags, DWORD reason);
|
---|
| 374 | typedef VOID (WINAPI *WSMAN_PLUGIN_SHELL) (PVOID pluginContext, WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, WSMAN_SHELL_STARTUP_INFO *startupInfo, WSMAN_DATA *inboundShellInformation);
|
---|
| 375 | typedef VOID (WINAPI *WSMAN_PLUGIN_COMMAND) (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PVOID shellContext, PCWSTR commandLine, WSMAN_COMMAND_ARG_SET *arguments);
|
---|
| 376 | typedef VOID (WINAPI *WSMAN_PLUGIN_SEND) (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PVOID shellContext, PVOID commandContext, PCWSTR stream, WSMAN_DATA *inboundData);
|
---|
| 377 | typedef VOID (WINAPI *WSMAN_PLUGIN_RECEIVE) (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PVOID shellContext, PVOID commandContext, WSMAN_STREAM_ID_SET *streamSet);
|
---|
| 378 | typedef VOID (WINAPI *WSMAN_PLUGIN_SIGNAL) (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PVOID shellContext, PVOID commandContext, PCWSTR code);
|
---|
| 379 | typedef VOID (WINAPI *WSMAN_PLUGIN_CONNECT) (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PVOID shellContext, PVOID commandContext, WSMAN_DATA *inboundConnectInformation);
|
---|
| 380 | typedef VOID (WINAPI *WSMAN_PLUGIN_AUTHORIZE_USER) (PVOID pluginContext, WSMAN_SENDER_DETAILS *senderDetails, DWORD flags);
|
---|
| 381 | typedef VOID (WINAPI *WSMAN_PLUGIN_AUTHORIZE_OPERATION) (PVOID pluginContext, WSMAN_SENDER_DETAILS *senderDetails, DWORD flags, DWORD operation, PCWSTR action, PCWSTR resourceUri);
|
---|
| 382 | typedef VOID (WINAPI *WSMAN_PLUGIN_AUTHORIZE_QUERY_QUOTA) (PVOID pluginContext, WSMAN_SENDER_DETAILS *senderDetails, DWORD flags);
|
---|
| 383 | typedef VOID (WINAPI *WSMAN_PLUGIN_AUTHORIZE_RELEASE_CONTEXT) (PVOID userAuthorizationContext);
|
---|
| 384 |
|
---|
| 385 | DWORD WINAPI WSManInitialize (DWORD flags, WSMAN_API_HANDLE *apiHandle);
|
---|
| 386 | DWORD WINAPI WSManDeinitialize (WSMAN_API_HANDLE apiHandle, DWORD flags);
|
---|
| 387 | DWORD WINAPI WSManGetErrorMessage (WSMAN_API_HANDLE apiHandle, DWORD flags, PCWSTR languageCode, DWORD errorCode, DWORD messageLength, PWSTR message, DWORD *messageLengthUsed);
|
---|
| 388 | DWORD WINAPI WSManCreateSession (WSMAN_API_HANDLE apiHandle, PCWSTR connection, DWORD flags, WSMAN_AUTHENTICATION_CREDENTIALS *serverAuthenticationCredentials, WSMAN_PROXY_INFO *proxyInfo, WSMAN_SESSION_HANDLE *session);
|
---|
| 389 | DWORD WINAPI WSManCloseSession (WSMAN_SESSION_HANDLE session, DWORD flags);
|
---|
| 390 | DWORD WINAPI WSManSetSessionOption (WSMAN_SESSION_HANDLE session, WSManSessionOption option, WSMAN_DATA *data);
|
---|
| 391 | DWORD WINAPI WSManGetSessionOptionAsDword (WSMAN_SESSION_HANDLE session, WSManSessionOption option, DWORD *value);
|
---|
| 392 | DWORD WINAPI WSManGetSessionOptionAsString (WSMAN_SESSION_HANDLE session, WSManSessionOption option, DWORD stringLength, PWSTR string, DWORD *stringLengthUsed);
|
---|
| 393 | DWORD WINAPI WSManCloseOperation (WSMAN_OPERATION_HANDLE operationHandle, DWORD flags);
|
---|
| 394 | void WINAPI WSManCreateShell (WSMAN_SESSION_HANDLE session, DWORD flags, PCWSTR resourceUri, WSMAN_SHELL_STARTUP_INFO *startupInfo, WSMAN_OPTION_SET *options, WSMAN_DATA *createXml, WSMAN_SHELL_ASYNC *async, WSMAN_SHELL_HANDLE *shell);
|
---|
| 395 | void WINAPI WSManRunShellCommand (WSMAN_SHELL_HANDLE shell, DWORD flags, PCWSTR commandLine, WSMAN_COMMAND_ARG_SET *args, WSMAN_OPTION_SET *options, WSMAN_SHELL_ASYNC *async, WSMAN_COMMAND_HANDLE *command);
|
---|
| 396 | void WINAPI WSManSignalShell (WSMAN_SHELL_HANDLE shell, WSMAN_COMMAND_HANDLE command, DWORD flags, PCWSTR code, WSMAN_SHELL_ASYNC *async, WSMAN_OPERATION_HANDLE *signalOperation);
|
---|
| 397 | void WINAPI WSManReceiveShellOutput (WSMAN_SHELL_HANDLE shell, WSMAN_COMMAND_HANDLE command, DWORD flags, WSMAN_STREAM_ID_SET *desiredStreamSet, WSMAN_SHELL_ASYNC *async, WSMAN_OPERATION_HANDLE *receiveOperation);
|
---|
| 398 | void WINAPI WSManSendShellInput (WSMAN_SHELL_HANDLE shell, WSMAN_COMMAND_HANDLE command, DWORD flags, PCWSTR streamId, WSMAN_DATA *streamData, WINBOOL endOfStream, WSMAN_SHELL_ASYNC *async, WSMAN_OPERATION_HANDLE *sendOperation);
|
---|
| 399 | void WINAPI WSManCloseCommand (WSMAN_COMMAND_HANDLE commandHandle, DWORD flags, WSMAN_SHELL_ASYNC *async);
|
---|
| 400 | void WINAPI WSManCloseShell (WSMAN_SHELL_HANDLE shellHandle, DWORD flags, WSMAN_SHELL_ASYNC *async);
|
---|
| 401 | DWORD WINAPI WSManPluginReportContext (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PVOID context);
|
---|
| 402 | DWORD WINAPI WSManPluginReceiveResult (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, PCWSTR stream, WSMAN_DATA *streamResult, PCWSTR commandState, DWORD exitCode);
|
---|
| 403 | DWORD WINAPI WSManPluginOperationComplete (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, DWORD errorCode, PCWSTR extendedInformation);
|
---|
| 404 | DWORD WINAPI WSManPluginGetOperationParameters (WSMAN_PLUGIN_REQUEST *requestDetails, DWORD flags, WSMAN_DATA *data);
|
---|
| 405 | DWORD WINAPI WSManPluginGetConfiguration (PVOID pluginContext, DWORD flags, WSMAN_DATA *data);
|
---|
| 406 | DWORD WINAPI WSManPluginReportCompletion (PVOID pluginContext, DWORD flags);
|
---|
| 407 | DWORD WINAPI WSManPluginFreeRequestDetails (WSMAN_PLUGIN_REQUEST *requestDetails);
|
---|
| 408 | DWORD WINAPI WSManPluginAuthzUserComplete (WSMAN_SENDER_DETAILS *senderDetails, DWORD flags, PVOID userAuthorizationContext, HANDLE impersonationToken, WINBOOL userIsAdministrator, DWORD errorCode, PCWSTR extendedErrorInformation);
|
---|
| 409 | DWORD WINAPI WSManPluginAuthzOperationComplete (WSMAN_SENDER_DETAILS *senderDetails, DWORD flags, PVOID userAuthorizationContext, DWORD errorCode, PCWSTR extendedErrorInformation);
|
---|
| 410 | DWORD WINAPI WSManPluginAuthzQueryQuotaComplete (WSMAN_SENDER_DETAILS *senderDetails, DWORD flags, WSMAN_AUTHZ_QUOTA *quota, DWORD errorCode, PCWSTR extendedErrorInformation);
|
---|
| 411 | #ifdef WSMAN_API_VERSION_1_1
|
---|
| 412 | void WINAPI WSManCreateShellEx (WSMAN_SESSION_HANDLE session, DWORD flags, PCWSTR resourceUri, PCWSTR shellId, WSMAN_SHELL_STARTUP_INFO *startupInfo, WSMAN_OPTION_SET *options, WSMAN_DATA *createXml, WSMAN_SHELL_ASYNC *async, WSMAN_SHELL_HANDLE *shell);
|
---|
| 413 | void WINAPI WSManRunShellCommandEx (WSMAN_SHELL_HANDLE shell, DWORD flags, PCWSTR commandId, PCWSTR commandLine, WSMAN_COMMAND_ARG_SET *args, WSMAN_OPTION_SET *options, WSMAN_SHELL_ASYNC *async, WSMAN_COMMAND_HANDLE *command);
|
---|
| 414 | void WINAPI WSManDisconnectShell (WSMAN_SHELL_HANDLE shell, DWORD flags, WSMAN_SHELL_DISCONNECT_INFO *disconnectInfo, WSMAN_SHELL_ASYNC *async);
|
---|
| 415 | void WINAPI WSManReconnectShell (WSMAN_SHELL_HANDLE shell, DWORD flags, WSMAN_SHELL_ASYNC *async);
|
---|
| 416 | void WINAPI WSManReconnectShellCommand (WSMAN_COMMAND_HANDLE commandHandle, DWORD flags, WSMAN_SHELL_ASYNC *async);
|
---|
| 417 | void WINAPI WSManConnectShell (WSMAN_SESSION_HANDLE session, DWORD flags, PCWSTR resourceUri, PCWSTR shellID, WSMAN_OPTION_SET *options, WSMAN_DATA *connectXml, WSMAN_SHELL_ASYNC *async, WSMAN_SHELL_HANDLE *shell);
|
---|
| 418 | void WINAPI WSManConnectShellCommand (WSMAN_SHELL_HANDLE shell, DWORD flags, PCWSTR commandID, WSMAN_OPTION_SET *options, WSMAN_DATA *connectXml, WSMAN_SHELL_ASYNC *async, WSMAN_COMMAND_HANDLE *command);
|
---|
| 419 | #endif
|
---|
| 420 |
|
---|
| 421 | #ifdef __cplusplus
|
---|
| 422 | }
|
---|
| 423 | #endif
|
---|
| 424 |
|
---|
| 425 | #endif
|
---|
| 426 | #endif
|
---|