windows-nt/Source/XPSP1/NT/ds/netapi/svcdlls/lls/server/purchase.h
2020-09-26 16:20:57 +08:00

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