home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / cecko / install / devcpp4920.exe / include / subauth.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-14  |  7.3 KB  |  206 lines

  1. #ifndef _SUBAUTH_H
  2. #define _SUBAUTH_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #ifndef NT_SUCCESS
  7. #define NT_SUCCESS(x) ((x)>=0)
  8. #define STATUS_SUCCESS 0 
  9. #endif
  10. #define CYPHER_BLOCK_LENGTH 8
  11. #define USER_SESSION_KEY_LENGTH (CYPHER_BLOCK_LENGTH*2)
  12. #define CLEAR_BLOCK_LENGTH 8
  13. #define MSV1_0_PASSTHRU 1
  14. #define MSV1_0_GUEST_LOGON 2
  15. #define MSV1_0_VALIDATION_LOGOFF_TIME 1
  16. #define MSV1_0_VALIDATION_KICKOFF_TIME 2
  17. #define MSV1_0_VALIDATION_LOGON_SERVER 4
  18. #define MSV1_0_VALIDATION_LOGON_DOMAIN 8
  19. #define MSV1_0_VALIDATION_SESSION_KEY 16
  20. #define MSV1_0_VALIDATION_USER_FLAGS 32
  21. #define MSV1_0_VALIDATION_USER_ID 64
  22. #define MSV1_0_SUBAUTH_ACCOUNT_DISABLED 1
  23. #define MSV1_0_SUBAUTH_PASSWORD 2
  24. #define MSV1_0_SUBAUTH_WORKSTATIONS 4
  25. #define MSV1_0_SUBAUTH_LOGON_HOURS 8
  26. #define MSV1_0_SUBAUTH_ACCOUNT_EXPIRY 16
  27. #define MSV1_0_SUBAUTH_PASSWORD_EXPIRY 32
  28. #define MSV1_0_SUBAUTH_ACCOUNT_TYPE 64
  29. #define MSV1_0_SUBAUTH_LOCKOUT 128
  30. #define NEXT_FREE_ACCOUNT_CONTROL_BIT 131072
  31. #define SAM_DAYS_PER_WEEK 7
  32. #define SAM_HOURS_PER_WEEK 168
  33. #define SAM_MINUTES_PER_WEEK 10080
  34. #define STATUS_INVALID_INFO_CLASS 0xC0000003L
  35. #define STATUS_NO_SUCH_USER 0xC0000064L
  36. #define STATUS_WRONG_PASSWORD 0xC000006AL
  37. #define STATUS_PASSWORD_RESTRICTION 0xC000006CL
  38. #define STATUS_LOGON_FAILURE 0xC000006DL
  39. #define STATUS_ACCOUNT_RESTRICTION 0xC000006EL
  40. #define STATUS_INVALID_LOGON_HOURS 0xC000006FL
  41. #define STATUS_INVALID_WORKSTATION 0xC0000070L
  42. #define STATUS_PASSWORD_EXPIRED 0xC0000071L
  43. #define STATUS_ACCOUNT_DISABLED 0xC0000072L
  44. #define STATUS_INSUFFICIENT_RESOURCES 0xC000009AL
  45. #define STATUS_ACCOUNT_EXPIRED 0xC0000193L
  46. #define STATUS_PASSWORD_MUST_CHANGE 0xC0000224L
  47. #define STATUS_ACCOUNT_LOCKED_OUT 0xC0000234L
  48. #define USER_ACCOUNT_DISABLED 1
  49. #define USER_HOME_DIRECTORY_REQUIRED 2
  50. #define USER_PASSWORD_NOT_REQUIRED 4
  51. #define USER_TEMP_DUPLICATE_ACCOUNT 8
  52. #define USER_NORMAL_ACCOUNT 16
  53. #define USER_MNS_LOGON_ACCOUNT 32
  54. #define USER_INTERDOMAIN_TRUST_ACCOUNT 64
  55. #define USER_WORKSTATION_TRUST_ACCOUNT 128
  56. #define USER_SERVER_TRUST_ACCOUNT 256
  57. #define USER_DONT_EXPIRE_PASSWORD 512
  58. #define USER_ACCOUNT_AUTO_LOCKED 1024
  59. #define USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED 2048
  60. #define USER_SMARTCARD_REQUIRED 4096
  61. #define USER_TRUSTED_FOR_DELEGATION 8192
  62. #define USER_NOT_DELEGATED 16384
  63. #define USER_USE_DES_KEY_ONLY 32768
  64. #define USER_DONT_REQUIRE_PREAUTH 65536
  65. #define USER_MACHINE_ACCOUNT_MASK 448
  66. #define USER_ACCOUNT_TYPE_MASK 472
  67. #define USER_ALL_PARAMETERS 2097152
  68. #if !defined(_NTDEF_H) && !defined(_NTSECAPI_H)
  69. typedef LONG NTSTATUS, *PNTSTATUS;
  70. typedef struct _UNICODE_STRING {
  71.   USHORT Length;
  72.   USHORT MaximumLength;
  73.   PWSTR Buffer;
  74. } UNICODE_STRING, *PUNICODE_STRING;
  75. typedef struct _STRING {
  76.   USHORT Length;
  77.   USHORT MaximumLength;
  78.   PCHAR Buffer;
  79. } STRING, *PSTRING;
  80. #endif
  81. typedef PVOID SAM_HANDLE, *PSAM_HANDLE;  
  82. typedef struct _OLD_LARGE_INTEGER {
  83.   ULONG LowPart;
  84.   LONG HighPart;
  85. } OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER;
  86. typedef enum _NETLOGON_LOGON_INFO_CLASS {
  87.   NetlogonInteractiveInformation = 1,NetlogonNetworkInformation,
  88.   NetlogonServiceInformation,NetlogonGenericInformation,
  89.   NetlogonInteractiveTransitiveInformation,NetlogonNetworkTransitiveInformation,
  90.   NetlogonServiceTransitiveInformation
  91. } NETLOGON_LOGON_INFO_CLASS;
  92. typedef struct _CYPHER_BLOCK {
  93.   CHAR data[CYPHER_BLOCK_LENGTH];
  94. } CYPHER_BLOCK, *PCYPHER_BLOCK;
  95. typedef struct _CLEAR_BLOCK {
  96.   CHAR data[CLEAR_BLOCK_LENGTH];
  97. } CLEAR_BLOCK, *PCLEAR_BLOCK;
  98. typedef struct _LM_OWF_PASSWORD {
  99.   CYPHER_BLOCK data[2];
  100. } LM_OWF_PASSWORD, *PLM_OWF_PASSWORD;
  101. typedef struct _USER_SESSION_KEY {
  102.   CYPHER_BLOCK data[2];
  103. } USER_SESSION_KEY, *PUSER_SESSION_KEY;
  104. typedef CLEAR_BLOCK LM_CHALLENGE, *PLM_CHALLENGE;
  105. typedef LM_OWF_PASSWORD NT_OWF_PASSWORD, *PNT_OWF_PASSWORD;
  106. typedef LM_CHALLENGE NT_CHALLENGE, *PNT_CHALLENGE;
  107. typedef struct _LOGON_HOURS {
  108.   USHORT UnitsPerWeek;
  109.   PUCHAR LogonHours;
  110. } LOGON_HOURS, *PLOGON_HOURS;
  111. typedef struct _SR_SECURITY_DESCRIPTOR {
  112.   ULONG Length;
  113.   PUCHAR SecurityDescriptor;
  114. } SR_SECURITY_DESCRIPTOR, *PSR_SECURITY_DESCRIPTOR;
  115. #pragma pack(push,4)
  116. typedef struct _USER_ALL_INFORMATION {
  117.   LARGE_INTEGER LastLogon;
  118.   LARGE_INTEGER LastLogoff;
  119.   LARGE_INTEGER PasswordLastSet;
  120.   LARGE_INTEGER AccountExpires;
  121.   LARGE_INTEGER PasswordCanChange;
  122.   LARGE_INTEGER PasswordMustChange;
  123.   UNICODE_STRING UserName;
  124.   UNICODE_STRING FullName;
  125.   UNICODE_STRING HomeDirectory;
  126.   UNICODE_STRING HomeDirectoryDrive;
  127.   UNICODE_STRING ScriptPath;
  128.   UNICODE_STRING ProfilePath;
  129.   UNICODE_STRING AdminComment;
  130.   UNICODE_STRING WorkStations;
  131.   UNICODE_STRING UserComment;
  132.   UNICODE_STRING Parameters;
  133.   UNICODE_STRING LmPassword;
  134.   UNICODE_STRING NtPassword;
  135.   UNICODE_STRING PrivateData;
  136.   SR_SECURITY_DESCRIPTOR SecurityDescriptor;
  137.   ULONG UserId;
  138.   ULONG PrimaryGroupId;
  139.   ULONG UserAccountControl;
  140.   ULONG WhichFields;
  141.   LOGON_HOURS LogonHours;
  142.   USHORT BadPasswordCount;
  143.   USHORT LogonCount;
  144.   USHORT CountryCode;
  145.   USHORT CodePage;
  146.   BOOLEAN LmPasswordPresent;
  147.   BOOLEAN NtPasswordPresent;
  148.   BOOLEAN PasswordExpired;
  149.   BOOLEAN PrivateDataSensitive;
  150. } USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION;
  151. #pragma pack(pop)
  152. typedef struct _MSV1_0_VALIDATION_INFO {
  153.   LARGE_INTEGER LogoffTime;
  154.   LARGE_INTEGER KickoffTime;
  155.   UNICODE_STRING LogonServer;
  156.   UNICODE_STRING LogonDomainName;
  157.   USER_SESSION_KEY SessionKey;
  158.   BOOLEAN Authoritative;
  159.   ULONG UserFlags;
  160.   ULONG WhichFields;
  161.   ULONG UserId;
  162. } MSV1_0_VALIDATION_INFO, *PMSV1_0_VALIDATION_INFO;
  163. typedef struct _NETLOGON_LOGON_IDENTITY_INFO {
  164.   UNICODE_STRING LogonDomainName;
  165.   ULONG ParameterControl;
  166.   OLD_LARGE_INTEGER LogonId;
  167.   UNICODE_STRING UserName;
  168.   UNICODE_STRING Workstation;
  169. } NETLOGON_LOGON_IDENTITY_INFO, *PNETLOGON_LOGON_IDENTITY_INFO;
  170. typedef struct _NETLOGON_INTERACTIVE_INFO {
  171.   NETLOGON_LOGON_IDENTITY_INFO Identity;
  172.   LM_OWF_PASSWORD LmOwfPassword;
  173.   NT_OWF_PASSWORD NtOwfPassword;
  174. } NETLOGON_INTERACTIVE_INFO, *PNETLOGON_INTERACTIVE_INFO;
  175. typedef struct _NETLOGON_GENERIC_INFO {
  176.   NETLOGON_LOGON_IDENTITY_INFO Identity;
  177.   UNICODE_STRING PackageName;
  178.   ULONG DataLength;
  179.   PUCHAR LogonData;
  180. } NETLOGON_GENERIC_INFO, *PNETLOGON_GENERIC_INFO;
  181. typedef struct _NETLOGON_NETWORK_INFO {
  182.   NETLOGON_LOGON_IDENTITY_INFO Identity;
  183.   LM_CHALLENGE LmChallenge;
  184.   STRING NtChallengeResponse;
  185.   STRING LmChallengeResponse;
  186. } NETLOGON_NETWORK_INFO, *PNETLOGON_NETWORK_INFO;
  187. typedef struct _NETLOGON_SERVICE_INFO {
  188.   NETLOGON_LOGON_IDENTITY_INFO Identity;
  189.   LM_OWF_PASSWORD LmOwfPassword;
  190.   NT_OWF_PASSWORD NtOwfPassword;
  191. } NETLOGON_SERVICE_INFO, *PNETLOGON_SERVICE_INFO;
  192. NTSTATUS NTAPI Msv1_0SubAuthenticationRoutine(NETLOGON_LOGON_INFO_CLASS,PVOID,
  193.                               ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG,
  194.                               PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER);
  195. NTSTATUS NTAPI Msv1_0SubAuthenticationFilter(NETLOGON_LOGON_INFO_CLASS,PVOID,
  196.                               ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG,
  197.                               PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER);
  198. NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineGeneric(PVOID,ULONG,PULONG,PVOID*);
  199. NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineEx(NETLOGON_LOGON_INFO_CLASS,PVOID,
  200.                               ULONG,PUSER_ALL_INFORMATION,SAM_HANDLE,
  201.                               PMSV1_0_VALIDATION_INFO,PULONG);
  202. #ifdef __cplusplus
  203. }
  204. #endif
  205. #endif /* _SUBAUTH_H */
  206.