summaryrefslogtreecommitdiffstats
path: root/private/nw/svcdlls/nwwks/server/nw.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/nw/svcdlls/nwwks/server/nw.h')
-rw-r--r--private/nw/svcdlls/nwwks/server/nw.h587
1 files changed, 587 insertions, 0 deletions
diff --git a/private/nw/svcdlls/nwwks/server/nw.h b/private/nw/svcdlls/nwwks/server/nw.h
new file mode 100644
index 000000000..daf64591d
--- /dev/null
+++ b/private/nw/svcdlls/nwwks/server/nw.h
@@ -0,0 +1,587 @@
+/*++
+
+Copyright (c) 1992-1993 Microsoft Corporation
+
+Module Name:
+
+ nw.h
+
+Abstract:
+
+ Main header of the NetWare Workstation service included by all
+ modules.
+
+Author:
+
+ Rita Wong (ritaw) 11-Dec-1992
+
+Environment:
+
+ User Mode -Win32
+
+Revision History:
+
+--*/
+
+#ifndef _NW_INCLUDED_
+#define _NW_INCLUDED_
+
+//
+// Includes
+//
+#include <stdlib.h>
+#include <string.h>
+
+#include <nt.h>
+#include <ntrtl.h>
+#include <nturtl.h>
+#include <windows.h>
+#include <windef.h>
+#include <winbase.h>
+#include <winerror.h>
+#include <winsvc.h>
+#include <winreg.h>
+#include <winspool.h>
+
+#include <services.h> // LMSVCS_ENTRY_POINT
+
+#include <align.h>
+#include <nwcanon.h>
+#include <nwpkstr.h>
+#include <nwrpcp.h>
+
+#include <rpc.h>
+#include <nwwks.h>
+
+#include <nwevent.h>
+#include <ntddnwfs.h>
+#include <nwsvc.h>
+#include <handle.h>
+#include <ndsapi32.h>
+#include <ntddnwfs.h>
+
+#define NW_DRIVER_NAME DD_NWFS_FILESYS_NAME_U
+
+
+//
+// Debug trace level bits for turning on/off trace statements in the
+// Workstation service
+//
+
+//
+// Initialization and reading info from registry
+//
+#define NW_DEBUG_INIT 0x00000001
+
+//
+// Connection APIs
+//
+#define NW_DEBUG_CONNECT 0x00000002
+
+//
+// Enumeration APIs
+//
+#define NW_DEBUG_ENUM 0x00000004
+
+//
+// Credential management APIs
+//
+#define NW_DEBUG_LOGON 0x00000008
+
+//
+// Queue management APIs
+//
+#define NW_DEBUG_QUEUE 0x00000010
+
+//
+// Print Provider APIs
+//
+#define NW_DEBUG_PRINT 0x00000020
+
+//
+// Calls to redirector
+//
+#define NW_DEBUG_DEVICE 0x00000040
+
+//
+// Message APIs
+//
+#define NW_DEBUG_MESSAGE 0x00000080
+
+#if DBG
+
+extern DWORD WorkstationTrace;
+
+#define IF_DEBUG(DebugCode) if (WorkstationTrace & NW_DEBUG_ ## DebugCode)
+
+#define STATIC
+
+#else
+
+#define IF_DEBUG(DebugCode) if (FALSE)
+
+#define STATIC static
+
+#endif // DBG
+
+//
+// Initialization states
+//
+#define NW_EVENTS_CREATED 0x00000001
+#define NW_RDR_INITIALIZED 0x00000002
+#define NW_BOUND_TO_TRANSPORTS 0x00000004
+#define NW_RPC_SERVER_STARTED 0x00000008
+#define NW_INITIALIZED_MESSAGE 0x00000010
+#define NW_GATEWAY_LOGON 0x00000020
+
+//
+// Key path to redirector driver entry
+//
+#define SERVICE_REGISTRY_KEY L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"
+
+
+//
+// Event that will be signaled when the service is stopping
+//
+extern HANDLE NwDoneEvent;
+
+//
+// Events for controlling popups, and the global popup data.
+//
+extern HANDLE NwPopupEvent;
+extern HANDLE NwPopupDoneEvent;
+
+typedef struct _NWWKS_POPUP_DATA {
+ DWORD MessageId ;
+ DWORD InsertCount ;
+ LPWSTR InsertStrings[10] ;
+} NWWKS_POPUP_DATA, *LPNWWKS_POPUP_DATA ;
+
+extern NWWKS_POPUP_DATA PopupData ;
+
+//
+// Flag to control DBCS translations
+//
+
+extern LONG Japan;
+
+//
+// Name of the network provider and print provider
+//
+extern WCHAR NwProviderName[];
+extern DWORD NwPacketBurstSize;
+extern DWORD NwPrintOption;
+extern DWORD NwGatewayPrintOption;
+extern BOOL GatewayLoggedOn ;
+extern BOOL GatewayConnectionAlways ;
+
+//
+// critical sections used
+//
+extern CRITICAL_SECTION NwLoggedOnCritSec;
+extern CRITICAL_SECTION NwServiceListCriticalSection;
+extern CRITICAL_SECTION NwPrintCritSec;
+//
+// Functions from device.c
+//
+DWORD
+NwInitializeRedirector(
+ VOID
+ );
+
+DWORD
+NwOpenRedirector(
+ VOID
+ );
+
+DWORD
+NwShutdownRedirector(
+ VOID
+ );
+
+DWORD
+NwLoadOrUnloadDriver(
+ BOOL Load
+ );
+
+DWORD
+NwBindToTransports(
+ VOID
+ );
+
+DWORD
+NwOpenPreferredServer(
+ PHANDLE ServerHandle
+ );
+
+VOID
+NwInitializePrintProvider(
+ VOID
+ );
+
+VOID
+NwTerminatePrintProvider(
+ VOID
+ );
+
+DWORD
+NwRedirFsControl(
+ IN HANDLE FileHandle,
+ IN ULONG RedirControlCode,
+ IN PNWR_REQUEST_PACKET Rrp,
+ IN ULONG RrpLength,
+ IN PVOID SecondBuffer OPTIONAL,
+ IN ULONG SecondBufferLength,
+ OUT PULONG Information OPTIONAL
+ );
+
+DWORD
+NwCreateTreeConnectName(
+ IN LPWSTR UncName,
+ IN LPWSTR LocalName OPTIONAL,
+ OUT PUNICODE_STRING TreeConnectStr
+ );
+
+DWORD
+NwOpenCreateConnection(
+ IN PUNICODE_STRING TreeConnectionName,
+ IN LPWSTR UserName OPTIONAL,
+ IN LPWSTR Password OPTIONAL,
+ IN LPWSTR UncName,
+ IN ACCESS_MASK DesiredAccess,
+ IN ULONG CreateDisposition,
+ IN ULONG CreateOptions,
+ IN ULONG ConnectionType,
+ OUT PHANDLE TreeConnectionHandle,
+ OUT PULONG Information OPTIONAL
+ );
+
+DWORD
+NwNukeConnection(
+ IN HANDLE TreeConnection,
+ IN DWORD UseForce
+ );
+
+DWORD
+NwGetServerResource(
+ IN LPWSTR LocalName,
+ IN DWORD LocalNameLength,
+ OUT LPWSTR RemoteName,
+ IN DWORD RemoteNameLen,
+ OUT LPDWORD CharsRequired
+ );
+
+DWORD
+NwEnumerateConnections(
+ IN OUT LPDWORD ResumeId,
+ IN DWORD EntriesRequested,
+ IN LPBYTE Buffer,
+ IN DWORD BufferSize,
+ OUT LPDWORD BytesNeeded,
+ OUT LPDWORD EntriesRead,
+ IN DWORD ConnectionType
+ );
+
+DWORD
+NwGetNextServerEntry(
+ IN HANDLE PreferredServer,
+ IN OUT LPDWORD LastObjectId,
+ OUT LPSTR ServerName
+ );
+
+DWORD
+NwGetNextServerConnection(
+ OUT LPNW_ENUM_CONTEXT ContextHandle
+ );
+
+DWORD
+NwGetNextNdsTreeEntry(
+ OUT LPNW_ENUM_CONTEXT ContextHandle
+ );
+
+DWORD
+NwGetNextVolumeEntry(
+ IN HANDLE ServerConnection,
+ IN DWORD LastObjectId,
+ OUT LPSTR VolumeName
+ );
+
+DWORD
+NwRdrLogonUser(
+ IN PLUID LogonId,
+ IN LPWSTR UserName,
+ IN DWORD UserNameSize,
+ IN LPWSTR Password OPTIONAL,
+ IN DWORD PasswordSize,
+ IN LPWSTR PreferredServer OPTIONAL,
+ IN DWORD PreferredServerSize
+ );
+
+VOID
+NwRdrChangePassword(
+ IN PNWR_REQUEST_PACKET Rrp
+ );
+
+DWORD
+NwRdrSetInfo(
+ IN DWORD PrintOption,
+ IN DWORD PacketBurstSize,
+ IN LPWSTR PreferredServer,
+ IN DWORD PreferredServerSize,
+ IN LPWSTR ProviderName,
+ IN DWORD ProviderNameSize
+ );
+
+DWORD
+NwRdrLogoffUser(
+ IN PLUID LogonId
+ );
+
+DWORD
+NwConnectToServer(
+ IN LPWSTR ServerName
+ );
+
+NTSTATUS
+NwOpenHandle(
+ IN PUNICODE_STRING ObjectName,
+ IN BOOL ValidateFlag,
+ OUT PHANDLE ObjectHandle
+ );
+
+NTSTATUS
+NwCallNtOpenFile(
+ OUT PHANDLE ObjectHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN PUNICODE_STRING ObjectName,
+ IN ULONG OpenOptions
+ );
+
+//
+// Functions from queue.c
+//
+DWORD
+NwGetNextQueueEntry(
+ IN HANDLE PreferredServer,
+ IN OUT LPDWORD LastObjectId,
+ OUT LPSTR QueueName
+ );
+
+DWORD
+NwAttachToNetwareServer(
+ IN LPWSTR ServerName,
+ OUT LPHANDLE phandleServer
+ );
+
+//
+// Functions from enum.c
+//
+DWORD
+NwOpenEnumPrintServers(
+ OUT LPNWWKSTA_CONTEXT_HANDLE EnumHandle
+ );
+
+DWORD
+NwOpenEnumPrintQueues(
+ IN LPWSTR ServerName,
+ OUT LPNWWKSTA_CONTEXT_HANDLE EnumHandle
+ );
+
+DWORD
+NwWriteNetResourceEntry(
+ IN OUT LPBYTE * FixedPortion,
+ IN OUT LPWSTR * EndOfVariableData,
+ IN LPWSTR ContainerName OPTIONAL,
+ IN LPWSTR LocalName OPTIONAL,
+ IN LPWSTR RemoteName,
+ IN DWORD ScopeFlags,
+ IN DWORD DisplayFlags,
+ IN DWORD UsageFlags,
+ IN DWORD ResourceType,
+ IN LPWSTR SystemPath OPTIONAL,
+ OUT LPWSTR * lppSystem OPTIONAL,
+ OUT LPDWORD BytesNeeded
+ );
+
+DWORD
+NwWritePrinterInfoEntry(
+ IN OUT LPBYTE *FixedPortion,
+ IN OUT LPWSTR *EndOfVariableData,
+ IN LPWSTR ContainerName OPTIONAL,
+ IN LPWSTR RemoteName,
+ IN DWORD Flags,
+ OUT LPDWORD BytesNeeded
+ );
+
+//
+// Functions from credentl.c
+//
+VOID
+NwInitializeLogon(
+ VOID
+ );
+
+VOID
+NwGetLogonCredential(
+ VOID
+ );
+
+DWORD
+NwGatewayLogon(
+ VOID
+ );
+
+DWORD
+NwGatewayLogoff(
+ VOID
+ );
+
+//
+// Functions from util.c
+//
+DWORD
+NwMapStatus(
+ IN NTSTATUS NtStatus
+ );
+
+DWORD
+NwMapBinderyCompletionCode(
+ IN NTSTATUS NtStatus
+ );
+
+DWORD
+NwImpersonateClient(
+ VOID
+ );
+
+DWORD
+NwRevertToSelf(
+ VOID
+ );
+
+VOID
+NwLogEvent(
+ DWORD MessageId,
+ DWORD NumberOfSubStrings,
+ LPWSTR *SubStrings,
+ DWORD ErrorCode
+ );
+
+BOOL
+NwConvertToUnicode(
+ OUT LPWSTR *UnicodeOut,
+ IN LPSTR OemIn
+ );
+
+VOID
+DeleteAllConnections(
+ VOID
+ );
+DWORD
+
+//
+// Functions from connect.c
+//
+NwCreateSymbolicLink(
+ IN LPWSTR Local,
+ IN LPWSTR TreeConnectStr
+ );
+
+VOID
+NwDeleteSymbolicLink(
+ IN LPWSTR LocalDeviceName,
+ IN LPWSTR TreeConnectStr
+ );
+
+DWORD
+NwOpenHandleToDeleteConn(
+ IN LPWSTR UncName,
+ IN LPWSTR LocalName OPTIONAL,
+ IN DWORD UseForce,
+ IN BOOL IsStopWksta
+ );
+
+DWORD
+NwCreateConnection(
+ IN LPWSTR LocalName OPTIONAL,
+ IN LPWSTR RemoteName,
+ IN DWORD Type,
+ IN LPWSTR Password OPTIONAL,
+ IN LPWSTR UserName OPTIONAL
+ );
+
+//
+// Functions from gateway.c
+//
+DWORD
+NwEnumerateGWDevices(
+ LPDWORD Index,
+ LPBYTE Buffer,
+ DWORD BufferSize,
+ LPDWORD BytesNeeded,
+ LPDWORD EntriesRead
+ ) ;
+
+DWORD
+NwCreateGWDevice(
+ LPWSTR DeviceName,
+ LPWSTR RemoteName,
+ DWORD Flags
+ ) ;
+
+DWORD
+NwRemoveGWDevice(
+ LPWSTR DeviceName,
+ DWORD Flags
+ ) ;
+
+DWORD
+NwQueryGWAccount(
+ LPWSTR AccountName,
+ DWORD AccountNameLen,
+ LPDWORD AccountCharsNeeded,
+ LPWSTR Password,
+ DWORD PasswordLen,
+ LPDWORD PasswordCharsNeeded
+ ) ;
+
+DWORD
+NwSetGWAccount(
+ LPWSTR AccountName,
+ LPWSTR Password
+ ) ;
+
+DWORD
+NwGetGatewayResource(
+ IN LPWSTR LocalName,
+ OUT LPWSTR RemoteName,
+ IN DWORD RemoteNameLen,
+ OUT LPDWORD CharsRequired
+ );
+
+DWORD
+NwCreateRedirections(
+ LPWSTR Account,
+ LPWSTR Password
+ );
+
+DWORD
+NwDeleteRedirections(
+ VOID
+ );
+
+DWORD
+NwCreateGWConnection(
+ IN LPWSTR RemoteName,
+ IN LPWSTR UserName,
+ IN LPWSTR Password,
+ IN BOOL KeepConnection
+ );
+
+DWORD
+NwDeleteGWConnection(
+ IN LPWSTR RemoteName
+ );
+
+
+#endif // _NW_INCLUDED_