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.
259 lines
7.2 KiB
259 lines
7.2 KiB
/*++
|
|
|
|
Copyright (c) 1992-1993 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ImpDir.h
|
|
|
|
Abstract:
|
|
|
|
This file contains structures, function prototypes, and definitions
|
|
for the replicator import directory worker routines.
|
|
|
|
Author:
|
|
|
|
John Rogers (JohnRo) 07-Jan-1992
|
|
|
|
Environment:
|
|
|
|
User Mode - Win32
|
|
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
|
|
Requires ANSI C extensions: slash-slash comments, long external names.
|
|
|
|
Notes:
|
|
|
|
You must include LmCons.h and ReplDefs.h before this file.
|
|
|
|
Revision History:
|
|
|
|
07-Jan-1992 JohnRo
|
|
Created.
|
|
09-Jan-1992 JohnRo
|
|
Added ImportDirBuildApiRecord().
|
|
Added IMPORT_DIR_SECTION_NAME equate.
|
|
Added ImportDir{Read,Write}ConfigData.
|
|
16-Jan-1992 JohnRo
|
|
Corrected "Notes" comment above.
|
|
20-Jan-1992 JohnRo
|
|
Netr prototypes are now generated by MIDL and put in repl.h.
|
|
23-Jan-1992 JohnRo
|
|
Clarify units for time parameters.
|
|
Changed IMPORT_DIR_SECTION_NAME.
|
|
27-Jan-1992 JohnRo
|
|
Added ImportDirSetState().
|
|
Changed to use LPTSTR etc.
|
|
Changed to avoid use of client-specific data structure.
|
|
09-Feb-1992 JohnRo
|
|
Added ImportDir{Start,Stop}Repl routines.
|
|
13-Feb-1992 JohnRo
|
|
Moved section name equates to ConfName.h.
|
|
19-Feb-1992 JohnRo
|
|
Added ImportDirIsApiRecordValid() and various other routines.
|
|
21-Feb-1992 JohnRo
|
|
UncMaster parm is optional to ImportDirBuildApiRecord.
|
|
21-Feb-1992 JohnRo
|
|
Changed ImportDirBuildApiRecord() so master name is not a UNC name.
|
|
15-Mar-1992 JohnRo
|
|
Update registry with new values.
|
|
23-Mar-1992 JohnRo
|
|
Added ImportDirReadClientList().
|
|
24-Mar-1992 JohnRo
|
|
UncMaster parm is optional to ImportDirWriteConfigData().
|
|
30-Jul-1992 JohnRo
|
|
Help PC-LINT understand ImportDirIsLevelValid().
|
|
25-Sep-1992 JohnRo
|
|
RAID 5494: repl svc does not maintain time stamp on import startup.
|
|
29-Sep-1992 JohnRo
|
|
RAID 7962: Repl APIs in wrong role kill svc.
|
|
Also fix remote repl admin.
|
|
01-Dec-1992 JohnRo
|
|
RAID 3844: remote NetReplSetInfo uses local machine type.
|
|
13-Apr-1993 JohnRo
|
|
RAID 3107: locking directory over the net gives network path not found.
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _IMPDIR_
|
|
#define _IMPDIR_
|
|
|
|
|
|
//
|
|
// Import dir helper routines and macros:
|
|
//
|
|
|
|
|
|
// Allocate one or more API records for an import directory. Callable whether
|
|
// or not the replicator service is started. (Used in getinfo stub, getinfo
|
|
// worker, and enum stub.)
|
|
NET_API_STATUS
|
|
ImportDirAllocApiRecords (
|
|
IN DWORD Level,
|
|
IN DWORD EntryCount,
|
|
OUT LPBYTE * BufPtr,
|
|
IN OUT LPBYTE *StringLocation // Points just past top of data.
|
|
);
|
|
|
|
NET_API_STATUS
|
|
ImportDirBuildApiRecord (
|
|
IN DWORD Level,
|
|
IN LPTSTR DirName,
|
|
IN DWORD State,
|
|
IN LPTSTR MasterName OPTIONAL, // computer name (not UNC).
|
|
IN DWORD TimeOfLastUpdate, // Seconds since 1970.
|
|
IN DWORD LockCount,
|
|
IN DWORD TimeOfFirstLock, // Seconds since 1970.
|
|
OUT LPVOID Buffer,
|
|
IN OUT LPBYTE *StringLocation // Points just past top of data.
|
|
);
|
|
|
|
// Tells whether or not config data for this directory exists.
|
|
// Callable even if the replicator service is not started.
|
|
BOOL
|
|
ImportDirConfigDataExists (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName // Caller must check dir name syntax.
|
|
);
|
|
|
|
NET_API_STATUS
|
|
ImportDirConfigSetInfo (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName,
|
|
IN DWORD Level,
|
|
IN LPVOID Buf,
|
|
OUT LPDWORD ParmError OPTIONAL
|
|
);
|
|
|
|
// Delete config data for this directory.
|
|
// Returns NERR_UnknownDevDir if config data doesn't exist for this dir.
|
|
// Callable even if the replicator service is not started.
|
|
NET_API_STATUS
|
|
ImportDirDeleteConfigData (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName // Caller must check dir name syntax.
|
|
);
|
|
|
|
// Callable even if the replicator service is not started.
|
|
NET_API_STATUS
|
|
ImportDirEnumApiRecords(
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN DWORD Level,
|
|
OUT LPBYTE * BufPtr,
|
|
IN DWORD PrefMaxSize,
|
|
OUT LPDWORD EntriesRead,
|
|
OUT LPDWORD TotalEntries
|
|
);
|
|
|
|
// Callable even if the replicator service is not started.
|
|
NET_API_STATUS
|
|
ImportDirGetApiRecord (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName,
|
|
IN DWORD Level,
|
|
OUT LPBYTE * BufPtr
|
|
);
|
|
|
|
BOOL
|
|
ImportDirIsApiRecordValid (
|
|
IN DWORD Level,
|
|
IN LPVOID ApiRecord,
|
|
OUT LPDWORD ParmError OPTIONAL
|
|
);
|
|
|
|
// BOOL
|
|
// ImportDirIsLevelValid(
|
|
// IN DWORD Level
|
|
// );
|
|
//
|
|
#define ImportDirIsLevelValid(Level) \
|
|
/*lint -e506 */ /* don't complain about constant values here */ \
|
|
( ((Level) <= 1 ) ? TRUE : FALSE ) \
|
|
/*lint +e506 */ \
|
|
|
|
// Callable whether or not service is started.
|
|
// If service is running, assume caller has lock (any kind) on RCGlobalListLock.
|
|
NET_API_STATUS
|
|
ImportDirLockInRegistry(
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName
|
|
);
|
|
|
|
// Parse config data for a single import directory. Callable whether or not
|
|
// the replicator service is started.
|
|
NET_API_STATUS
|
|
ImportDirParseConfigData (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR KeywordValue,
|
|
OUT LPDWORD StatePtr,
|
|
OUT LPTSTR MasterPtr,
|
|
OUT LPDWORD LastUpdateTimePtr, // Seconds since 1970.
|
|
OUT LPDWORD LockCountPtr,
|
|
OUT LPDWORD LockTimePtr // Seconds since 1970.
|
|
);
|
|
|
|
// Read import dirs into service's client list.
|
|
// Only callable as part of the service itself.
|
|
NET_API_STATUS
|
|
ImportDirReadClientList(
|
|
VOID
|
|
);
|
|
|
|
// Read config data for a single import directory. Callable whether or not
|
|
// the replicator service is started.
|
|
NET_API_STATUS
|
|
ImportDirReadConfigData (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName,
|
|
OUT LPDWORD StatePtr,
|
|
OUT LPTSTR MasterPtr,
|
|
OUT LPDWORD LastUpdateTimePtr, // Seconds since 1970.
|
|
OUT LPDWORD LockCountPtr,
|
|
OUT LPDWORD LockTimePtr // Seconds since 1970.
|
|
);
|
|
|
|
// Change the state for a single import directory.
|
|
NET_API_STATUS
|
|
ImportDirSetState (
|
|
IN LPTSTR DirName,
|
|
IN DWORD State // Must be REPL_STATE_ value.
|
|
);
|
|
|
|
// Start replicating (importing).
|
|
// Called when service starts or user does NetReplSetInfo() and changes role.
|
|
NET_API_STATUS
|
|
ImportDirStartRepl (
|
|
IN BOOL ServiceIsStarting
|
|
);
|
|
|
|
// Stop replicating (importing).
|
|
// Called when service stops or user does NetReplSetInfo() and changes role.
|
|
NET_API_STATUS
|
|
ImportDirStopRepl (
|
|
VOID
|
|
);
|
|
|
|
// Callable whether or not service is started.
|
|
// If service is running, assume caller has lock (any kind) on RCGlobalListLock.
|
|
NET_API_STATUS
|
|
ImportDirUnlockInRegistry(
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName,
|
|
IN DWORD UnlockForce
|
|
);
|
|
|
|
// Write config data for a single import directory. Callable whether or not
|
|
// the replicator service is started.
|
|
NET_API_STATUS
|
|
ImportDirWriteConfigData (
|
|
IN LPTSTR UncServerName OPTIONAL,
|
|
IN LPTSTR DirName,
|
|
IN DWORD State,
|
|
IN LPTSTR UncMaster OPTIONAL,
|
|
IN DWORD LastUpdateTime, // Seconds since 1970.
|
|
IN DWORD LockCount,
|
|
IN DWORD LockTime // Seconds since 1970.
|
|
);
|
|
|
|
|
|
#endif // _IMPDIR_
|