Portable Types

In the interest of portability to other platforms, the following types are used on the following platforms.

Win32

Win32 is a flat, 32-bit environment, which supports the Unicode character set. As such, the following types are defined:

typedef wchar_t      SEC_CHAR;

typedef struct _SECURITY_INTEGER {
      unsigned long      LowPart;
      long            HighPart;
} SECURITY_INTEGER;

typedef SECURITY_INTEGER      TimeStamp, * PTimeStamp;
 

Win16, MS-DOS

These environments are segmented, 16-bit real-mode environments.

typedef unsigned char      SEC_CHAR;

typedef unsigned long      TimeStamp, __far * PTimeStamp;
 

Handles

Handles are defined as follows:

typedef struct _SecHandle {
      unsigned long      dwLower;
      unsigned long      dwUpper;
} SecHandle, * PSecHandle;

typedef SecHandle      CredHandle;
typedef PSecHandle     PCredHandle;

typedef SecHandle      CtxtHandle;
typedef PSecHandle     PCtxtHandle;
 

Note that for 16-bit environments, the PSecHandle type is actually a __far pointer.