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.

79 lines
1.9 KiB

  1. [
  2. uuid(12b81e99-f207-4a4c-85d3-77b42f76fd14),
  3. version(1.0),
  4. pointer_default(unique)
  5. ]
  6. interface ISeclogon
  7. {
  8. typedef struct _SECL_STRING {
  9. unsigned long ccLength;
  10. unsigned long ccSize;
  11. [size_is(ccSize), length_is(ccLength)]
  12. wchar_t *pwsz;
  13. } SECL_STRING, *PSECL_STRING;
  14. typedef struct _SECL_BLOB {
  15. unsigned long cb;
  16. [size_is(cb)]
  17. unsigned char *pb;
  18. } SECL_BLOB, *PSECL_BLOB;
  19. typedef struct _SECL_SLI {
  20. SECL_STRING ssUsername;
  21. SECL_STRING ssDomain;
  22. SECL_STRING ssPassword;
  23. SECL_STRING ssApplicationName;
  24. SECL_STRING ssCommandLine;
  25. SECL_STRING ssCurrentDirectory;
  26. SECL_STRING ssTitle;
  27. SECL_STRING ssDesktop;
  28. SECL_BLOB sbEnvironment;
  29. unsigned long ulProcessId;
  30. unsigned long ulLogonIdLowPart;
  31. signed long lLogonIdHighPart;
  32. unsigned long ulLogonFlags;
  33. unsigned long ulCreationFlags;
  34. // Private, used by seclogon:
  35. unsigned long ulSeclogonFlags;
  36. unsigned __int64 hWinsta; // Handle to the client's windowstation
  37. unsigned __int64 hDesk; // Handle to the client's desktop
  38. } SECL_SLI, *PSECL_SLI;
  39. typedef struct _SECL_SLRI {
  40. unsigned __int64 hProcess;
  41. unsigned __int64 hThread;
  42. unsigned long ulProcessId;
  43. unsigned long ulThreadId;
  44. unsigned long ulErrorCode;
  45. } SECL_SLRI, *PSECL_SLRI;
  46. void SeclCreateProcessWithLogonW
  47. ([in] handle_t hRPCBinding,
  48. [in, ref] SECL_SLI *psli,
  49. [out, ref] SECL_SLRI *pslri);
  50. };
  51. cpp_quote("#define wszSeclogonSharedProcEndpointName L\"SECLOGON\"")
  52. cpp_quote("#define wszSvcName L\"seclogon\"")
  53. cpp_quote("#define SECLOGON_CALLER_SPECIFIED_DESKTOP 0x00000001")