windows-nt/Source/XPSP1/NT/ds/nw/svcdlls/nwwks/idl/nwwks.idl
2020-09-26 16:20:57 +08:00

483 lines
11 KiB
Plaintext

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
nwwks.idl
Abstract:
This is the IDL file that describes the RPC interface for the
NetWare workstation internal APIs.
Author:
Rita Wong (ritaw) 11-Feb-1993
Environment:
User Mode -Win32
Revision History:
Yi-Hsin Sung ( yihsins ) 24-Apr-1993
Added NwrOpenEnumPrintServers and NwrOpenEnumPrintQueues
Glenn A. Curtis (glennc) 19-Oct-1995
Added NwrGetUser, NwrGetResourceInformation, and NwrGetResourceParent
--*/
//
// Interface Attributes
//
[
uuid(E67AB081-9844-3521-9D32-834F038001C0),
version(1.0),
pointer_default(unique)
]
//
// Interface Keyword
//
interface nwwks
//
// Interface Body
//
{
import "imports.idl";
//
// Handle types
//
typedef [handle] wchar_t * NWWKSTA_IMPERSONATE_HANDLE;
typedef [handle] wchar_t * NWWKSTA_IDENTIFY_HANDLE;
typedef [context_handle] PVOID NWWKSTA_CONTEXT_HANDLE;
typedef NWWKSTA_CONTEXT_HANDLE *LPNWWKSTA_CONTEXT_HANDLE;
typedef [context_handle] PVOID NWWKSTA_PRINTER_CONTEXT;
typedef NWWKSTA_PRINTER_CONTEXT *LPNWWKSTA_PRINTER_CONTEXT;
typedef struct _NW_JOB_INFO {
DWORD nPosition;
[string, unique] wchar_t *pDocument;
[string, unique] wchar_t *pUserName;
} NW_JOB_INFO, *PNW_JOB_INFO;
//
// Function prototype
//
DWORD
NwrCreateConnection(
[in,string,unique] NWWKSTA_IMPERSONATE_HANDLE Reserved,
[in,string,unique] wchar_t * LocalName,
[in,string] wchar_t * RemoteName,
[in] DWORD Type,
[in,string,unique] wchar_t * Password,
[in,string,unique] wchar_t * UserName
);
typedef struct _NWSERVER {
[string] wchar_t * ServerName;
} NWSERVER, *LPNWSERVER;
DWORD
NwrChangePassword(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] DWORD UserLuid,
[in,string] wchar_t * UserName,
[in,string,unique] wchar_t * OldPassword,
[in,string,unique] wchar_t * NewPassword,
[in,string] wchar_t * TreeName
);
DWORD
NwrDeleteConnection(
[in,string,unique] NWWKSTA_IMPERSONATE_HANDLE Reserved,
[in,string] wchar_t * ConnectionName,
[in] DWORD UseForce
);
DWORD
NwrQueryServerResource(
[in,string,unique] NWWKSTA_IMPERSONATE_HANDLE Reserved,
[in,string] wchar_t * LocalName,
[in, out,string, unique, size_is(RemoteNameLen * sizeof(wchar_t))] wchar_t * RemoteName,
[in] DWORD RemoteNameLen,
[out] LPDWORD CharsRequired
);
DWORD
NwrOpenEnumConnections(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] DWORD ConnectionType,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumContextInfo(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] DWORD ConnectionType,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumServersAndNdsTrees(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumNdsSubTrees_Disk(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * ParentPathName,
[in,out,unique] LPDWORD ClassTypeOfNDSLeaf,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumNdsSubTrees_Print(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * ParentPathName,
[in,out,unique] LPDWORD ClassTypeOfNDSLeaf,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumNdsSubTrees_Any(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * ParentPathName,
[in,out,unique] LPDWORD ClassTypeOfNDSLeaf,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumVolumes(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * ServerName,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumQueues(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * ServerName,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumVolumesQueues(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * ServerName,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrOpenEnumDirectories(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t * VolumeName,
[in,string,unique] wchar_t * UserName,
[in,string,unique] wchar_t * Password,
[out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrEnum(
[in] NWWKSTA_CONTEXT_HANDLE EnumHandle,
[in] DWORD_PTR EntriesRequested,
[out,size_is(BufferSize)] LPBYTE Buffer,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded,
[out] LPDWORD EntriesRead
);
DWORD
NwrEnumConnections(
[in] NWWKSTA_CONTEXT_HANDLE EnumHandle,
[in] DWORD EntriesRequested,
[out,size_is(BufferSize)] LPBYTE Buffer,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded,
[out] LPDWORD EntriesRead,
[in] DWORD fImplicitConnections
);
DWORD
NwrCloseEnum(
[in,out] LPNWWKSTA_CONTEXT_HANDLE EnumHandle
);
DWORD
NwrLogonUser(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] PLUID LogonId,
[in,string] wchar_t * UserName,
[in,string,unique] wchar_t * Password,
[in,string,unique] wchar_t * ServerName,
[in,string,unique] wchar_t * NdsServerName,
[in,out,string,unique,size_is(LogonCommandLength * sizeof(wchar_t))] wchar_t * LogonCommand,
[in] DWORD LogonCommandLength,
[in] DWORD PrintOption
);
DWORD
NwrLogoffUser(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] PLUID LogonId
);
DWORD
NwrSetInfo(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] DWORD PrintOption,
[in,string,unique] wchar_t * ServerName
);
DWORD
NwrValidateUser(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string,unique] wchar_t * ServerName
);
DWORD
NwrOpenPrinter(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string] wchar_t *PrinterName,
[in] DWORD fKnownPrinter,
[out] LPNWWKSTA_PRINTER_CONTEXT PrinterHandle
);
DWORD
NwrClosePrinter(
[in,out] LPNWWKSTA_PRINTER_CONTEXT PrinterHandle
);
DWORD
NwrGetPrinter(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in] DWORD Level,
[in,out,unique,size_is(BufferSize)] LPBYTE PrinterInfo,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded
);
DWORD
NwrSetPrinter(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in] DWORD Command
);
DWORD
NwrEnumPrinters(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string,unique] wchar_t *ContainerName,
[in,out,unique,size_is(BufferSize)] LPBYTE Buffer,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded,
[out] LPDWORD EntriesRead
);
DWORD
NwrStartDocPrinter(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in,string,unique] wchar_t *DocumentName,
[in,string,unique] wchar_t *UserName,
[in] DWORD PrintOption,
[in] DWORD fGateway
);
DWORD
NwrWritePrinter(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in,size_is(BufferSize)] LPBYTE Buffer,
[in] DWORD BufferSize,
[out] LPDWORD BytesWritten
);
DWORD
NwrAbortPrinter(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle
);
DWORD
NwrEndDocPrinter(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle
);
DWORD
NwrEnumJobs(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in] DWORD FirstJobRequested,
[in] DWORD EntriesRequested,
[in] DWORD Level,
[in,out,unique,size_is(BufferSize)] LPBYTE Buffer,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded,
[out] LPDWORD EntriesRead
);
DWORD
NwrGetJob(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in] DWORD JobId,
[in] DWORD Level,
[in,out,unique,size_is(BufferSize)] LPBYTE JobInfo,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded
);
DWORD
NwrSetJob(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in] DWORD JobId,
[in] DWORD Level,
[in, unique] PNW_JOB_INFO pNwJobInfo,
[in] DWORD Command
);
DWORD
NwrAddJob(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[out] LPADDJOB_INFO_1W AddInfo1,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded
);
DWORD
NwrScheduleJob(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in] DWORD JobId
);
DWORD
NwrWaitForPrinterChange(
[in] NWWKSTA_PRINTER_CONTEXT PrinterHandle,
[in,out] LPDWORD Flags
);
DWORD
NwrEnumGWDevices(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in, out] PDWORD Index,
[in,out,unique,size_is(BufferSize)] LPBYTE Buffer,
[in] DWORD BufferSize,
[out] LPDWORD BytesNeeded,
[out] LPDWORD EntriesRead
);
DWORD
NwrAddGWDevice(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string,unique] wchar_t *DeviceName,
[in,string,unique] wchar_t *RemoteName,
[in,string,unique] wchar_t *AccountName,
[in,string,unique] wchar_t *Password,
[in] DWORD Flags
);
DWORD
NwrDeleteGWDevice(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in,string,unique] wchar_t *DeviceName,
[in] DWORD Flags
);
DWORD
NwrQueryGatewayAccount(
[in,string,unique] NWWKSTA_IMPERSONATE_HANDLE Reserved,
[in, out,string, unique, size_is(AccountNameLen * sizeof(wchar_t))] wchar_t * AccountName,
[in] DWORD AccountNameLen,
[out] LPDWORD AccountCharsNeeded,
[in, out,string, unique, size_is(PasswordLen * sizeof(wchar_t))] wchar_t * Password,
[in] DWORD PasswordLen,
[out] LPDWORD PasswordCharsNeeded
);
DWORD
NwrSetGatewayAccount(
[in,string,unique] NWWKSTA_IMPERSONATE_HANDLE Reserved,
[in,string] wchar_t * AccountName,
[in,string] wchar_t * Passwoed
);
#ifndef QFE_BUILD
DWORD
NwrGetService(
[in, string, unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] WORD nServiceType,
[in, string] wchar_t *lpServiceName,
[in] DWORD dwProperties,
[in, out, unique, size_is(dwBufferLength)] LPBYTE lpServiceInfo,
[in] DWORD dwBufferLength,
[out] LPDWORD lpdwBytesNeeded
);
DWORD
NwrSetService(
[in, string, unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] DWORD dwOperation,
[in] LPSERVICE_INFOW lpServiceInfo,
[in] WORD nServiceType
);
DWORD
NwrGetUser(
[in, string, unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in, string, unique] wchar_t * lpRemoteName,
[out, size_is(dwUserNameBufferSize)] LPBYTE lpUserName,
[in] DWORD dwUserNameBufferSize,
[out] LPDWORD lpdwCharsRequired
);
DWORD
NwrGetResourceInformation(
[in, string, unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in, string, unique] wchar_t * lpRemoteName,
[in] DWORD dwType,
[out, size_is(dwBufferSize)] LPBYTE lpBuffer,
[in] DWORD dwBufferSize,
[out] LPDWORD lpdwBytesNeeded,
[out] LPDWORD lpdwSystemOffset
);
DWORD
NwrGetConnectionPerformance(
[in, string, unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in, string, unique] wchar_t * lpRemoteName,
[out, size_is(dwBufferSize)] LPBYTE lpNetConnectInfo,
[in] DWORD dwBufferSize
);
DWORD
NwrGetResourceParent(
[in, string, unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in, string, unique] wchar_t * lpRemoteName,
[in] DWORD dwType,
[out, size_is(dwBufferSize)] LPBYTE lpBuffer,
[in] DWORD dwBufferSize,
[out] LPDWORD lpdwBytesNeeded
);
DWORD
NwrSetLogonScript(
[in,string,unique] NWWKSTA_IDENTIFY_HANDLE Reserved,
[in] DWORD ScriptOptions
);
#endif
}