131 lines
3.3 KiB
Plaintext
131 lines
3.3 KiB
Plaintext
/*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
[
|
|
uuid(0492311C-1718-4F53-A6EB-86AD7039988D),
|
|
version(1.0),
|
|
pointer_default(unique),
|
|
//implicit_handle(handle_t hHadoopWinutilsSvcBinding),
|
|
endpoint("ncalrpc:[hadoopwinutilsvc]"),
|
|
#ifndef __midl
|
|
explicit_handle
|
|
#endif
|
|
]
|
|
interface HadoopWinutilSvc
|
|
{
|
|
typedef struct {
|
|
[string] const wchar_t* cwd;
|
|
[string] const wchar_t* jobName;
|
|
[string] const wchar_t* user;
|
|
[string] const wchar_t* pidFile;
|
|
[string] const wchar_t* cmdLine;
|
|
} CREATE_PROCESS_REQUEST;
|
|
|
|
typedef struct {
|
|
LONG_PTR hProcess;
|
|
LONG_PTR hThread;
|
|
LONG_PTR hStdIn;
|
|
LONG_PTR hStdOut;
|
|
LONG_PTR hStdErr;
|
|
} CREATE_PROCESS_RESPONSE;
|
|
|
|
typedef struct {
|
|
[string] const wchar_t* filePath;
|
|
[string] const wchar_t* ownerName;
|
|
[string] const wchar_t* groupName;
|
|
} CHOWN_REQUEST;
|
|
|
|
typedef struct {
|
|
[string] const wchar_t* filePath;
|
|
int mode;
|
|
} CHMOD_REQUEST;
|
|
|
|
typedef struct {
|
|
[string] const wchar_t* filePath;
|
|
} MKDIR_REQUEST;
|
|
|
|
typedef enum { MOVE_FILE = 1, COPY_FILE = 2} MOVE_COPY_OPERATION;
|
|
|
|
typedef struct {
|
|
MOVE_COPY_OPERATION operation;
|
|
[string] const wchar_t* sourcePath;
|
|
[string] const wchar_t* destinationPath;
|
|
boolean replaceExisting;
|
|
} MOVEFILE_REQUEST;
|
|
|
|
typedef struct {
|
|
[string] const wchar_t* path;
|
|
int desiredAccess;
|
|
int shareMode;
|
|
int creationDisposition;
|
|
int flags;
|
|
} CREATEFILE_REQUEST;
|
|
|
|
typedef struct {
|
|
LONG_PTR hFile;
|
|
} CREATEFILE_RESPONSE;
|
|
|
|
typedef enum {PATH_IS_DIR = 1, PATH_IS_FILE = 2} DELETEPATH_TYPE;
|
|
|
|
typedef struct {
|
|
DELETEPATH_TYPE type;
|
|
[string] const wchar_t* path;
|
|
} DELETEPATH_REQUEST;
|
|
|
|
typedef struct {
|
|
boolean deleted;
|
|
} DELETEPATH_RESPONSE;
|
|
|
|
typedef struct {
|
|
[string] const wchar_t* taskName;
|
|
} KILLTASK_REQUEST;
|
|
|
|
error_status_t WinutilsKillTask(
|
|
[in] KILLTASK_REQUEST *request);
|
|
|
|
error_status_t WinutilsMkDir(
|
|
[in] MKDIR_REQUEST *request);
|
|
|
|
error_status_t WinutilsMoveFile(
|
|
[in] MOVEFILE_REQUEST *request);
|
|
|
|
error_status_t WinutilsChown(
|
|
[in] CHOWN_REQUEST *request);
|
|
|
|
error_status_t WinutilsChmod(
|
|
[in] CHMOD_REQUEST *request);
|
|
|
|
error_status_t WinutilsCreateFile(
|
|
[in] int nmPid,
|
|
[in] CREATEFILE_REQUEST *request,
|
|
[out] CREATEFILE_RESPONSE **response);
|
|
|
|
error_status_t WinutilsDeletePath(
|
|
[in] DELETEPATH_REQUEST *request,
|
|
[out] DELETEPATH_RESPONSE **response);
|
|
|
|
error_status_t WinutilsCreateProcessAsUser(
|
|
[in] int nmPid,
|
|
[in] CREATE_PROCESS_REQUEST *request,
|
|
[out] CREATE_PROCESS_RESPONSE **response);
|
|
|
|
}
|