Leaked source code of windows server 2003
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.
 
 
 
 
 
 

195 lines
6.2 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
Pack.h
Abstract:
Author:
Arthur Hanson (arth) Dec 07, 1994
Environment:
Revision History:
Jeff Parham (jeffparh) 05-Dec-1995
o Added new fields to purchase record to support secure certificates.
o Unified per server purchase model with per seat purchase model for
secure certificates; per server model still done in the traditional
manner for non-secure certificates (for backwards compatibility).
o Added SaveAll() function analogous to LoadAll().
o Added support for extended user data packing/unpacking. This was
done to save the SUITE_USE flag across restarts of the service.
o Removed user table parameters from unpack routines that didn't use
them.
--*/
#ifndef _LLS_PACK_H
#define _LLS_PACK_H
#ifdef __cplusplus
extern "C" {
#endif
/////////////////////////////////////////////////////////////////////
//
// Save / Load Mapping
//
#define MAPPING_FILE_VERSION 0x0100
typedef struct _PACK_MAPPING_RECORD {
LPTSTR Name;
LPTSTR Comment;
ULONG Licenses;
} PACK_MAPPING_RECORD, *PPACK_MAPPING_RECORD;
typedef struct _PACK_MAPPING_USER_RECORD {
ULONG Mapping;
LPTSTR Name;
} PACK_MAPPING_USER_RECORD, *PPACK_MAPPING_USER_RECORD;
typedef struct _MAPPING_FILE_HEADER {
ULONG MappingUserTableSize;
ULONG MappingUserStringSize;
ULONG MappingTableSize;
ULONG MappingStringSize;
} MAPPING_FILE_HEADER, *PMAPPING_FILE_HEADER;
/////////////////////////////////////////////////////////////////////
//
// Save / Load License
//
///////////////// OLD (3.51) FORMAT ////////////////////
#define LICENSE_FILE_VERSION_0 0x0100
typedef struct _PACK_LICENSE_PURCHASE_RECORD_0 {
ULONG Service;
LONG NumberLicenses;
DWORD Date;
LPTSTR Admin;
LPTSTR Comment;
} PACK_LICENSE_PURCHASE_RECORD_0, *PPACK_LICENSE_PURCHASE_RECORD_0;
typedef struct _LICENSE_FILE_HEADER_0 {
ULONG LicenseServiceTableSize;
ULONG LicenseServiceStringSize;
ULONG LicenseTableSize;
ULONG LicenseStringSize;
} LICENSE_FILE_HEADER_0, *PLICENSE_FILE_HEADER_0;
///////////////// NEW FORMAT ////////////////////
#define LICENSE_FILE_VERSION 0x0201
typedef struct _PACK_LICENSE_SERVICE_RECORD {
LPTSTR ServiceName;
LONG NumberLicenses;
} PACK_LICENSE_SERVICE_RECORD, *PPACK_LICENSE_SERVICE_RECORD;
typedef struct _PACK_LICENSE_PURCHASE_RECORD {
ULONG Service;
LONG NumberLicenses;
DWORD Date;
LPTSTR Admin;
LPTSTR Comment;
// new for SUR: (see description in purchase.h)
ULONG PerServerService;
DWORD AllowedModes;
DWORD CertificateID;
LPTSTR Source;
DWORD ExpirationDate;
DWORD MaxQuantity;
LPTSTR Vendor;
DWORD Secrets[ LLS_NUM_SECRETS ];
} PACK_LICENSE_PURCHASE_RECORD, *PPACK_LICENSE_PURCHASE_RECORD;
typedef struct _LICENSE_FILE_HEADER {
ULONG LicenseServiceTableSize;
ULONG LicenseServiceStringSize;
ULONG LicenseTableSize;
ULONG LicenseStringSize;
// new for SUR:
ULONG PerServerLicenseServiceTableSize;
ULONG PerServerLicenseServiceStringSize;
} LICENSE_FILE_HEADER, *PLICENSE_FILE_HEADER;
/////////////////////////////////////////////////////////////////////
//
// Save / Load LLS Data
//
///////////////// OLD (3.51) FORMAT ////////////////////
#define USER_FILE_VERSION_0 0x0100
typedef struct _LLS_DATA_FILE_HEADER_0 {
ULONG ServiceTableSize;
ULONG ServiceStringSize;
ULONG ServerTableSize;
ULONG ServerStringSize;
ULONG ServerServiceTableSize;
ULONG UserTableSize;
ULONG UserStringSize;
} LLS_DATA_FILE_HEADER_0, *PLLS_DATA_FILE_HEADER_0;
///////////////// NEW FORMAT ////////////////////
#define USER_FILE_VERSION 0x0200
typedef struct _LLS_DATA_FILE_HEADER {
ULONG ServiceLevel;
ULONG ServiceTableSize;
ULONG ServiceStringSize;
ULONG ServerLevel;
ULONG ServerTableSize;
ULONG ServerStringSize;
ULONG ServerServiceLevel;
ULONG ServerServiceTableSize;
ULONG UserLevel;
ULONG UserTableSize;
ULONG UserStringSize;
} LLS_DATA_FILE_HEADER, *PLLS_DATA_FILE_HEADER;
VOID LicenseListLoad();
NTSTATUS LicenseListSave();
VOID MappingListLoad();
NTSTATUS MappingListSave();
VOID LLSDataLoad();
NTSTATUS LLSDataSave();
VOID LoadAll ( );
VOID SaveAll ( );
NTSTATUS ServiceListPack ( ULONG *pServiceTableSize, PREPL_SERVICE_RECORD *pServices );
VOID ServiceListUnpack ( ULONG ServiceTableSize, PREPL_SERVICE_RECORD Services, ULONG ServerTableSize, PREPL_SERVER_RECORD Servers, ULONG ServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD ServerServices );
NTSTATUS ServerListPack ( ULONG *pServerTableSize, PREPL_SERVER_RECORD *pServers );
VOID ServerListUnpack ( ULONG ServiceTableSize, PREPL_SERVICE_RECORD Services, ULONG ServerTableSize, PREPL_SERVER_RECORD Servers, ULONG ServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD ServerServices );
NTSTATUS ServerServiceListPack ( ULONG *pServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD *pServerServices );
VOID ServerServiceListUnpack ( ULONG ServiceTableSize, PREPL_SERVICE_RECORD Services, ULONG ServerTableSize, PREPL_SERVER_RECORD Servers, ULONG ServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD ServerServices );
NTSTATUS UserListPack ( DWORD LastReplicated, ULONG UserLevel, ULONG *pUserTableSize, LPVOID *pUsers );
VOID UserListUnpack ( ULONG ServiceTableSize, PREPL_SERVICE_RECORD Services, ULONG ServerTableSize, PREPL_SERVER_RECORD Servers, ULONG ServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD ServerServices, ULONG UserLevel, ULONG UserTableSize, LPVOID Users );
NTSTATUS PackAll ( DWORD LastReplicated, ULONG *pServiceTableSize, PREPL_SERVICE_RECORD *pServices, ULONG *pServerTableSize, PREPL_SERVER_RECORD *pServers, ULONG *pServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD *pServerServices, ULONG UserLevel, ULONG *pUserTableSize, LPVOID *pUsers );
VOID UnpackAll ( ULONG ServiceTableSize, PREPL_SERVICE_RECORD Services, ULONG ServerTableSize, PREPL_SERVER_RECORD Servers, ULONG ServerServiceTableSize, PREPL_SERVER_SERVICE_RECORD ServerServices, ULONG UserLevel, ULONG UserTableSize, LPVOID Users );
#ifdef __cplusplus
}
#endif
#endif