/*++ Copyright (c) 1991 Microsoft Corporation Module Name: lmadtool.h Abstract: Contains constants and function prototypes for the Remotable Network Administration tools. Author: Dan Lafferty (danl) 27-Sept-1991 Environment: User Mode -Win32 and Win16 Revision History: 27-Sept-1991 danl created --*/ // // Defines // #define TYPE_USER 1L #define TYPE_GROUP 2L #define TYPE_INVALID 3L #define TYPE_UNKNOWN 4L // // File Security API. // // (must #include \nt\public\sdk\inc\seapi.h) // (must #include \nt\private\inc\seopaque.h) // DWORD NetpSetFileSecurityA ( IN LPSTR ServerName OPTIONAL, IN LPSTR lpFileName, IN PSECURITY_INFORMATION pSecurityInformation, IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); DWORD NetpSetFileSecurityW ( IN LPWSTR ServerName OPTIONAL, IN LPWSTR lpFileName, IN PSECURITY_INFORMATION pSecurityInformation, IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); DWORD NetpGetFileSecurityA( IN LPSTR ServerName OPTIONAL, IN LPSTR lpFileName, IN PSECURITY_INFORMATION pRequestedInformation, OUT PSECURITY_DESCRIPTOR *pSecurityDescriptor, OUT LPDWORD pnLength ); DWORD NetpGetFileSecurityW( IN LPWSTR ServerName OPTIONAL, IN LPWSTR lpFileName, IN PSECURITY_INFORMATION pRequestedInformation, OUT PSECURITY_DESCRIPTOR *pSecurityDescriptor, OUT LPDWORD pnLength ); // // Name From Sid API // typedef struct _NAME_INFOA { LPSTR Name; DWORD NameUse; } NAME_INFOA, *PNAME_INFOA, *LPNAME_INFOA; typedef struct _NAME_INFOW { LPWSTR Name; DWORD NameUse; } NAME_INFOW, *PNAME_INFOW, *LPNAME_INFOW; #ifdef UNICODE #define NAME_INFO NAME_INFOW #define PNAME_INFO PNAME_INFOW #define LPNAME_INFO LPNAME_INFOW #else #define NAME_INFO NAME_INFOA #define PNAME_INFO PNAME_INFOA #define LPNAME_INFO LPNAME_INFOA #endif // UNICODE DWORD NetpGetNameFromSidA ( IN LPSTR ServerName, IN DWORD SidCount, IN PSID SidPtr, OUT LPDWORD NameCount, OUT LPNAME_INFOA *NameInfo ); DWORD NetpGetNameFromSidW ( IN LPWSTR ServerName, IN DWORD SidCount, IN PSID SidPtr, OUT LPDWORD NameCount, OUT LPNAME_INFOW *NameInfo ); #ifdef UNICODE #define NetpGetNameFromSid NetpGetNameFromSidW #else #define NetpGetNameFromSid NetpGetNameFromSidA #endif // UNICODE // // User, Group, UserModals API // // (This includes the ability to get a SID from a NAME) // // // // USER INFO // // DWORD NetpUserGetInfoA ( IN LPSTR servername OPTIONAL, IN LPSTR username, IN DWORD level, OUT LPBYTE *bufptr ); DWORD NetpUserGetInfoW ( IN LPWSTR servername OPTIONAL, IN LPWSTR username, IN DWORD level, OUT LPBYTE *bufptr ); DWORD NetpUserSetInfoA ( IN LPSTR servername OPTIONAL, IN LPSTR username, IN DWORD level, IN LPBYTE buf, OUT LPDWORD parm_err OPTIONAL ); DWORD NetpUserSetInfoW ( IN LPWSTR servername OPTIONAL, IN LPWSTR username, IN DWORD level, IN LPBYTE buf, OUT LPDWORD parm_err OPTIONAL ); // // // GROUP INFO // // DWORD NetpGroupGetInfoA ( IN LPSTR servername OPTIONAL, IN LPSTR groupname, IN DWORD level, OUT LPBYTE *bufptr ); DWORD NetpGroupGetInfoW ( IN LPWSTR servername OPTIONAL, IN LPWSTR groupname, IN DWORD level, OUT LPBYTE *bufptr ); DWORD NetpGroupSetInfoA ( IN LPSTR servername OPTIONAL, IN LPSTR groupname, IN DWORD level, IN LPBYTE buf, OUT LPDWORD parm_err OPTIONAL ); DWORD NetpGroupSetInfoW ( IN LPWSTR servername OPTIONAL, IN LPWSTR groupname, IN DWORD level, IN LPBYTE buf, OUT LPDWORD parm_err OPTIONAL ); // // // USER_MODALS INFO // // DWORD NetpUserModalsGetA ( IN LPSTR servername OPTIONAL, IN DWORD level, OUT LPBYTE *bufptr ); DWORD NetpUserModalsGetW ( IN LPWSTR servername OPTIONAL, IN DWORD level, OUT LPBYTE *bufptr ); DWORD NetpUserModalsSetA ( IN LPSTR servername OPTIONAL, IN DWORD level, IN LPBYTE buf, OUT LPDWORD parm_err OPTIONAL ); DWORD NetpUserModalsSetW ( IN LPWSTR servername OPTIONAL, IN DWORD level, IN LPBYTE buf, OUT LPDWORD parm_err OPTIONAL ); #ifdef UNICODE #define NetpUserGetInfo NetpUserGetInfoW #define NetpUserSetInfo NetpUserSetInfoW #define NetpGroupGetInfo NetpGroupGetInfoW #define NetpGroupSetInfo NetpGroupSetInfoW #define NetpUserModalsGet NetpUserModalsGetW #define NetpUserModalsSet NetpUserModalsSetW #else #define NetpUserGetInfo NetpUserGetInfoA #define NetpUserSetInfo NetpUserSetInfoA #define NetpGroupGetInfo NetpGroupGetInfoA #define NetpGroupSetInfo NetpGroupSetInfoA #define NetpUserModalsGet NetpUserModalsGetA #define NetpUserModalsSet NetpUserModalsSetA #endif //UNICODE // // EventLog // typedef LPBYTE ADT_HANDLE, *PADT_HANDLE; DWORD NetpCloseEventLog ( IN ADT_HANDLE hEventLog ); DWORD NetpClearEventLogA ( IN ADT_HANDLE hEventLog, IN LPSTR lpBackupFileName ); DWORD NetpOpenEventLogA ( IN LPSTR lpUNCServerName, IN LPSTR lpModuleName, OUT PADT_HANDLE lpEventHandle ); DWORD NetpReadEventLogA ( IN ADT_HANDLE hEventLog, IN DWORD dwReadFlags, IN DWORD dwRecordOffset, OUT LPVOID lpBuffer, IN DWORD nNumberOfBytesToRead, OUT DWORD *pnBytesRead, OUT DWORD *pnMinNumberOfBytesNeeded ); DWORD NetpWriteEventLogEntryA ( IN ADT_HANDLE hEventLog, IN WORD wType, IN DWORD dwEventID, IN PSID lpUserSid OPTIONAL, IN WORD wNumStrings, IN DWORD dwDataSize, IN LPSTR *lpStrings OPTIONAL, IN LPVOID lpRawData OPTIONAL );