mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
342 lines
7.6 KiB
342 lines
7.6 KiB
/*++
|
|
|
|
Copyright (c) 1991-1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
dfsstub.c
|
|
|
|
Abstract:
|
|
|
|
These are the server service API RPC client stubs for DFS operations
|
|
|
|
Environment:
|
|
|
|
User Mode - Win32
|
|
|
|
--*/
|
|
|
|
//
|
|
// INCLUDES
|
|
//
|
|
|
|
#include <nt.h> // DbgPrint prototype
|
|
|
|
#include <ntrtl.h> // DbgPrint
|
|
#include <rpc.h> // DataTypes and runtime APIs
|
|
|
|
#include <srvsvc.h> // generated by the MIDL complier
|
|
#include <lmcons.h> // NET_API_STATUS
|
|
#include <debuglib.h> // (needed by netrpc.h)
|
|
#include <lmsvc.h> // (needed by netrpc.h)
|
|
#include <netdebug.h> // (needed by netrpc.h)
|
|
#include <lmerr.h> // NetError codes
|
|
#include <netrpc.h> // NET_REMOTE_ macros.
|
|
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsGetVersion(
|
|
IN LPWSTR servername,
|
|
OUT LPDWORD Version)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsGetVersion( servername, Version );
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"I_NetDfsGetVersion",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END
|
|
|
|
return(apiStatus);
|
|
|
|
}
|
|
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsCreateLocalPartition (
|
|
IN LPWSTR servername,
|
|
IN LPWSTR ShareName,
|
|
IN LPGUID EntryUid,
|
|
IN LPWSTR EntryPrefix,
|
|
IN LPWSTR ShortName,
|
|
IN LPNET_DFS_ENTRY_ID_CONTAINER RelationInfo,
|
|
IN BOOL Force
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsCreateLocalPartition (
|
|
servername,
|
|
ShareName,
|
|
EntryUid,
|
|
EntryPrefix,
|
|
ShortName,
|
|
RelationInfo,
|
|
Force
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsCreateLocalPartition",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END
|
|
|
|
return(apiStatus);
|
|
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsDeleteLocalPartition (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPGUID Uid,
|
|
IN LPWSTR Prefix
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsDeleteLocalPartition (
|
|
servername,
|
|
Uid,
|
|
Prefix
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsDeleteLocalPartition",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsSetLocalVolumeState (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPGUID Uid,
|
|
IN LPWSTR Prefix,
|
|
IN ULONG State
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsSetLocalVolumeState (
|
|
servername,
|
|
Uid,
|
|
Prefix,
|
|
State
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsSetLocalVolumeState",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsSetServerInfo (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPGUID Uid,
|
|
IN LPWSTR Prefix
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsSetServerInfo (
|
|
servername,
|
|
Uid,
|
|
Prefix
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsSetServerInfo",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsCreateExitPoint (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPGUID Uid,
|
|
IN LPWSTR Prefix,
|
|
IN ULONG Type,
|
|
IN ULONG ShortPrefixSize,
|
|
OUT LPWSTR ShortPrefix
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsCreateExitPoint (
|
|
servername,
|
|
Uid,
|
|
Prefix,
|
|
Type,
|
|
ShortPrefixSize,
|
|
ShortPrefix
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsCreateExitPoint",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsDeleteExitPoint (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPGUID Uid,
|
|
IN LPWSTR Prefix,
|
|
IN ULONG Type
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsDeleteExitPoint (
|
|
servername,
|
|
Uid,
|
|
Prefix,
|
|
Type
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsDeleteExitPoint",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsModifyPrefix (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPGUID Uid,
|
|
IN LPWSTR Prefix
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsModifyPrefix (
|
|
servername,
|
|
Uid,
|
|
Prefix
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsModifyPrefix",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|
|
NET_API_STATUS NET_API_FUNCTION
|
|
I_NetDfsFixLocalVolume (
|
|
IN LPWSTR servername OPTIONAL,
|
|
IN LPWSTR VolumeName,
|
|
IN ULONG EntryType,
|
|
IN ULONG ServiceType,
|
|
IN LPWSTR StgId,
|
|
IN LPGUID EntryUid, // unique id for this partition
|
|
IN LPWSTR EntryPrefix, // path prefix for this partition
|
|
IN LPNET_DFS_ENTRY_ID_CONTAINER RelationInfo,
|
|
IN ULONG CreateDisposition
|
|
)
|
|
{
|
|
NET_API_STATUS apiStatus;
|
|
|
|
NET_REMOTE_TRY_RPC
|
|
|
|
apiStatus = NetrDfsFixLocalVolume (
|
|
servername,
|
|
VolumeName,
|
|
EntryType,
|
|
ServiceType,
|
|
StgId,
|
|
EntryUid,
|
|
EntryPrefix,
|
|
RelationInfo,
|
|
CreateDisposition
|
|
);
|
|
|
|
NET_REMOTE_RPC_FAILED(
|
|
"NetDfsFixLocalVolume",
|
|
servername,
|
|
apiStatus,
|
|
NET_REMOTE_FLAG_NORMAL,
|
|
SERVICE_SERVER)
|
|
|
|
apiStatus = ERROR_NOT_SUPPORTED;
|
|
|
|
NET_REMOTE_END;
|
|
|
|
return apiStatus;
|
|
}
|
|
|