115 lines
3.5 KiB
C
115 lines
3.5 KiB
C
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Purchase.h
|
|
|
|
Abstract:
|
|
|
|
|
|
Author:
|
|
|
|
Arthur Hanson (arth) Dec 07, 1994
|
|
|
|
Environment:
|
|
|
|
Revision History:
|
|
|
|
Jeff Parham (jeffparh) 05-Dec-1995
|
|
o Added support for uniting per seat and per server purchase models.
|
|
o Added extra parameters and code to support secure certificates and
|
|
certificate database.
|
|
|
|
--*/
|
|
|
|
#ifndef _LLS_PURCHASE_H
|
|
#define _LLS_PURCHASE_H
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
typedef struct _LICENSE_SERVICE_RECORD {
|
|
LPTSTR ServiceName;
|
|
ULONG Index;
|
|
LONG NumberLicenses;
|
|
} LICENSE_SERVICE_RECORD, *PLICENSE_SERVICE_RECORD;
|
|
|
|
|
|
typedef struct _LICENSE_PURCHASE_RECORD {
|
|
PLICENSE_SERVICE_RECORD Service;
|
|
LONG NumberLicenses;
|
|
DWORD Date;
|
|
LPTSTR Admin;
|
|
LPTSTR Comment;
|
|
|
|
// added for SUR:
|
|
PLICENSE_SERVICE_RECORD PerServerService; // points to per server
|
|
// license tally for this
|
|
// service
|
|
|
|
DWORD AllowedModes; // bit field: 1, allowed
|
|
// to be used in per seat
|
|
// mode; 2, per server
|
|
|
|
DWORD CertificateID; // identifies the secure
|
|
// certificate from which
|
|
// these licenses came, or
|
|
// 0 if unsecure
|
|
|
|
LPTSTR Source; // source of the certificate
|
|
// currently supported
|
|
// values are "None" and
|
|
// "Paper"
|
|
|
|
DWORD ExpirationDate; // time at which this
|
|
// certificate expires
|
|
|
|
DWORD MaxQuantity; // the largest number of licenses
|
|
// that can be installed from this
|
|
// certificate
|
|
|
|
LPTSTR Vendor; // vendor of the product, e.g.,
|
|
// "Microsoft"
|
|
|
|
DWORD Secrets[ LLS_NUM_SECRETS ]; // secrets for LSAPI
|
|
// challenge mechanism
|
|
|
|
} LICENSE_PURCHASE_RECORD, *PLICENSE_PURCHASE_RECORD;
|
|
|
|
|
|
|
|
extern ULONG LicenseServiceListSize;
|
|
extern PLICENSE_SERVICE_RECORD *LicenseServiceList;
|
|
|
|
extern ULONG PerServerLicenseServiceListSize;
|
|
extern PLICENSE_SERVICE_RECORD *PerServerLicenseServiceList;
|
|
|
|
extern PLICENSE_PURCHASE_RECORD PurchaseList;
|
|
extern ULONG PurchaseListSize;
|
|
|
|
extern RTL_RESOURCE LicenseListLock;
|
|
|
|
|
|
NTSTATUS LicenseListInit();
|
|
PLICENSE_SERVICE_RECORD LicenseServiceListFind( LPTSTR ServiceName, BOOL UsePerServerList );
|
|
PLICENSE_SERVICE_RECORD LicenseServiceListAdd( LPTSTR ServiceName, BOOL UsePerServerList );
|
|
ULONG ProductLicensesGet( LPTSTR ServiceName, BOOL UsePerServerList );
|
|
NTSTATUS LicenseAdd( LPTSTR ServiceName, LPTSTR Vendor, LONG Quantity, DWORD MaxQuantity, LPTSTR Admin, LPTSTR Comment, DWORD Date, DWORD AllowedModes, DWORD CertificateID, LPTSTR Source, DWORD ExpirationDate, LPDWORD Secrets );
|
|
|
|
|
|
#if DBG
|
|
VOID LicenseListDebugDump( );
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|