Windows NT 4.0 source code leak
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

/*++
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_