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