diff options
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/ntlsapi.h | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/public/sdk/inc/ntlsapi.h b/public/sdk/inc/ntlsapi.h new file mode 100644 index 000000000..2d848120b --- /dev/null +++ b/public/sdk/inc/ntlsapi.h @@ -0,0 +1,194 @@ +/* + * LSAPI.H + * + * NOTE: If you are using this header file on the Windows for DOS platform, + * then you are required to include "windows.h" prior to including + * this header file. + */ + +#ifndef LSAPI_H +#define LSAPI_H + +#if defined(WINVER) // Windows for NT or DOS +#if defined(WINAPIV) +#define LS_API_ENTRY WINAPIV +#else +#define LS_API_ENTRY WINAPI +#endif +#else +#define LS_API_ENTRY +#endif + +typedef unsigned long LS_STATUS_CODE; +typedef unsigned long LS_HANDLE; + +// ************************************************** +// Standard LSAPI C status codes +//*************************************************** +#define LS_SUCCESS ((LS_STATUS_CODE) 0x0) +#define LS_BAD_HANDLE ((LS_STATUS_CODE) 0xC0001001) +#define LS_INSUFFICIENT_UNITS ((LS_STATUS_CODE) 0xC0001002) +#define LS_SYSTEM_UNAVAILABLE ((LS_STATUS_CODE) 0xC0001003) +#define LS_LICENSE_TERMINATED ((LS_STATUS_CODE) 0xC0001004) +#define LS_AUTHORIZATION_UNAVAILABLE ((LS_STATUS_CODE) 0xC0001005) +#define LS_LICENSE_UNAVAILABLE ((LS_STATUS_CODE) 0xC0001006) +#define LS_RESOURCES_UNAVAILABLE ((LS_STATUS_CODE) 0xC0001007) +#define LS_NETWORK_UNAVAILABLE ((LS_STATUS_CODE) 0xC0001008) +#define LS_TEXT_UNAVAILABLE ((LS_STATUS_CODE) 0x80001009) +#define LS_UNKNOWN_STATUS ((LS_STATUS_CODE) 0xC000100A) +#define LS_BAD_INDEX ((LS_STATUS_CODE) 0xC000100B) +#define LS_LICENSE_EXPIRED ((LS_STATUS_CODE) 0x8000100C) +#define LS_BUFFER_TOO_SMALL ((LS_STATUS_CODE) 0xC000100D) +#define LS_BAD_ARG ((LS_STATUS_CODE) 0xC000100E) + +//*************************************************** +//* Nt LS API data structure and constant +//*************************************************** + +#define NT_LS_USER_NAME ((ULONG) 0) // username only +#define NT_LS_USER_SID ((ULONG) 1) // SID only + +typedef struct { + ULONG DataType; // Type of the following data, ie. user name, sid... + VOID *Data; // Actual data. username, sid, etc... + // if call the unicode API character data + // must be in unicode as well + BOOL IsAdmin; +} NT_LS_DATA; + + +// +// Prototypes for License Request routines +// + +typedef LS_STATUS_CODE + (LS_API_ENTRY * PNT_LICENSE_REQUEST_W)( + LPWSTR ProductName, + LPWSTR Version, + LS_HANDLE *LicenseHandle, + NT_LS_DATA *NtData); + +typedef LS_STATUS_CODE + (LS_API_ENTRY * PNT_LS_FREE_HANDLE)( + LS_HANDLE LicenseHandle ); + + +#ifdef UNICODE +#define NtLicenseRequest NtLicenseRequestW +#else +#define NtLicenseRequest NtLicenseRequestA +#endif // !UNICODE + +LS_STATUS_CODE LS_API_ENTRY NtLicenseRequestA( + LPSTR ProductName, + LPSTR Version, + LS_HANDLE FAR *LicenseHandle, + NT_LS_DATA *NtData); + +LS_STATUS_CODE LS_API_ENTRY NtLicenseRequestW( + LPWSTR ProductName, + LPWSTR Version, + LS_HANDLE FAR *LicenseHandle, + NT_LS_DATA *NtData); + + +LS_STATUS_CODE LS_API_ENTRY NtLSFreeHandle( + LS_HANDLE LicenseHandle ); + +// ************************************************************************* +// OLD API After this point - Don't use +// ************************************************************************* + + +/***************************************************/ +/* standard LS API c datatype definitions */ +/***************************************************/ + +typedef char LS_STR; +typedef unsigned long LS_ULONG; +typedef long LS_LONG; +typedef void LS_VOID; + +typedef struct { + LS_STR MessageDigest[16]; /* a 128-bit message digest */ +} LS_MSG_DIGEST; + +typedef struct { + LS_ULONG SecretIndex; /* index of secret, X */ + LS_ULONG Random; /* a random 32-bit value, R */ + LS_MSG_DIGEST MsgDigest; /* the message digest h(in,R,S,Sx) */ +} LS_CHALLDATA; + +typedef struct { + LS_ULONG Protocol; /* Specifies the protocol */ + LS_ULONG Size; /* size of ChallengeData structure */ + LS_CHALLDATA ChallengeData; /* challenge & response */ +} LS_CHALLENGE; + + +/***************************************************/ +/* Standard LSAPI C constant definitions */ +/***************************************************/ + +#define LS_DEFAULT_UNITS ((LS_ULONG) 0xFFFFFFFF) +#define LS_ANY ((LS_STR FAR *) "") +#define LS_USE_LAST ((LS_ULONG) 0x0800FFFF) +#define LS_INFO_NONE ((LS_ULONG) 0) +#define LS_INFO_SYSTEM ((LS_ULONG) 1) +#define LS_INFO_DATA ((LS_ULONG) 2) +#define LS_UPDATE_PERIOD ((LS_ULONG) 3) +#define LS_LICENSE_CONTEXT ((LS_ULONG) 4) +#define LS_BASIC_PROTOCOL ((LS_ULONG) 0x00000001) +#define LS_SQRT_PROTOCOL ((LS_ULONG) 0x00000002) +#define LS_OUT_OF_BAND_PROTOCOL ((LS_ULONG) 0xFFFFFFFF) +#define LS_NULL ((LS_VOID FAR *) NULL) + + +/***************************************************/ +/* Standard LSAPI C function definitions */ +/***************************************************/ + + +LS_STATUS_CODE LS_API_ENTRY NtLSRequest( + LS_STR FAR *LicenseSystem, + LS_STR FAR *PublisherName, + LS_STR FAR *ProductName, + LS_STR FAR *Version, + LS_ULONG TotUnitsReserved, + LS_STR FAR *LogComment, + LS_CHALLENGE FAR *Challenge, + LS_ULONG FAR *TotUnitsGranted, + LS_HANDLE FAR *LicenseHandle, + NT_LS_DATA FAR *NtData); + +LS_STATUS_CODE LS_API_ENTRY NtLSRelease( + LS_HANDLE LicenseHandle, + LS_ULONG TotUnitsConsumed, + LS_STR FAR *LogComment); + +LS_STATUS_CODE LS_API_ENTRY NtLSUpdate( + LS_HANDLE LicenseHandle, + LS_ULONG TotUnitsConsumed, + LS_ULONG TotUnitsReserved, + LS_STR FAR *LogComment, + LS_CHALLENGE FAR *Challenge, + LS_ULONG FAR *TotUnitsGranted); + +LS_STATUS_CODE LS_API_ENTRY NtLSGetMessage( + LS_HANDLE LicenseHandle, + LS_STATUS_CODE Value, + LS_STR FAR *Buffer, + LS_ULONG BufferSize); + +LS_STATUS_CODE LS_API_ENTRY NtLSQuery( + LS_HANDLE LicenseHandle, + LS_ULONG Information, + LS_VOID FAR *InfoBuffer, + LS_ULONG BufferSize, + LS_ULONG FAR *ActualBufferSize); + +LS_STATUS_CODE LS_API_ENTRY NtLSEnumProviders( + LS_ULONG Index, + LS_STR FAR *Buffer); + +#endif /* LSAPI_H */ |