Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
4.1 KiB

  1. // --------------------------------------------------------------------------
  2. // Module Name: GinaIPC.h
  3. //
  4. // Copyright (c) 1999-2000, Microsoft Corporation
  5. //
  6. // Private structures that allow the CLogonIPC class hosted in an external
  7. // process to communicate with GINA which provides the logon service within
  8. // the Winlogon process.
  9. //
  10. // History: 1999-08-20 vtan created
  11. // 2000-01-31 vtan moved from Neptune to Whistler
  12. // 2000-05-05 vtan added GINA -> UI communications
  13. // 2000-06-16 vtan moved to ds\published\inc
  14. // --------------------------------------------------------------------------
  15. #ifndef _GinaIPC_
  16. #define _GinaIPC_
  17. #include <lmcons.h>
  18. // These are enumerations of valid requested functionality.
  19. static const UINT WM_LOGONSERVICEREQUEST = WM_USER + 8517;
  20. static const UINT WM_UISERVICEREQUEST = WM_USER + 7647;
  21. // These are messages for UI -> GINA communications.
  22. static const int LOGON_QUERY_LOGGED_ON = 1;
  23. static const int LOGON_LOGON_USER = 2;
  24. static const int LOGON_LOGOFF_USER = 3;
  25. static const int LOGON_TEST_BLANK_PASSWORD = 4;
  26. static const int LOGON_TEST_INTERACTIVE_LOGON_ALLOWED = 5;
  27. static const int LOGON_TEST_EJECT_ALLOWED = 6;
  28. static const int LOGON_TEST_SHUTDOWN_ALLOWED = 7;
  29. static const int LOGON_TURN_OFF_COMPUTER = 10;
  30. static const int LOGON_EJECT_COMPUTER = 11;
  31. static const int LOGON_SIGNAL_UIHOST_FAILURE = 20;
  32. static const int LOGON_ALLOW_EXTERNAL_CREDENTIALS = 30;
  33. static const int LOGON_REQUEST_EXTERNAL_CREDENTIALS = 31;
  34. // These are messages for GINA -> UI communications.
  35. static const int UI_STATE_NONE = 0;
  36. static const int UI_TERMINATE = 1;
  37. static const int UI_STATE_STATUS = 2;
  38. static const int UI_STATE_LOGON = 3;
  39. static const int UI_STATE_LOGGEDON = 4;
  40. static const int UI_STATE_HIDE = 5;
  41. static const int UI_STATE_END = 6;
  42. static const int UI_DISPLAY_STATUS = 10;
  43. static const int UI_NOTIFY_WAIT = 20;
  44. static const int UI_SELECT_USER = 21;
  45. static const int UI_SET_ANIMATIONS = 22;
  46. static const int UI_INTERACTIVE_LOGON = 30;
  47. // These are start methods of the UI host
  48. static const int HOST_START_NORMAL = 0;
  49. static const int HOST_START_SHUTDOWN = 1;
  50. static const int HOST_START_WAIT = 2;
  51. // These are end methods of the UI host
  52. static const int HOST_END_HIDE = 0;
  53. static const int HOST_END_TERMINATE = 1;
  54. static const int HOST_END_FAILURE = 2;
  55. // This is generic to all request types.
  56. typedef struct
  57. {
  58. BOOL fResult;
  59. } LOGONIPC;
  60. // This represents user identification.
  61. typedef struct
  62. {
  63. LOGONIPC logonIPC;
  64. WCHAR wszUsername[UNLEN + sizeof('\0')],
  65. wszDomain[DNLEN + sizeof('\0')];
  66. } LOGONIPC_USERID;
  67. // This represents user credentials (identification + password).
  68. // The password is run encoded when stored in memory.
  69. typedef struct
  70. {
  71. LOGONIPC_USERID userID;
  72. WCHAR wszPassword[PWLEN + sizeof('\0')];
  73. int iPasswordLength;
  74. unsigned char ucPasswordSeed;
  75. } LOGONIPC_CREDENTIALS;
  76. // This structure is used to return users from msgina to shgina.
  77. typedef struct
  78. {
  79. LPWSTR pszName;
  80. LPWSTR pszDomain;
  81. LPWSTR pszFullName;
  82. DWORD dwFlags;
  83. } GINA_USER_INFORMATION;
  84. // This is the status window class shared between msgina and shgina.
  85. #define STATUS_WINDOW_CLASS_NAME (TEXT("StatusWindowClass"))
  86. #endif /* _GinaIPC_ */