Leaked source code of windows server 2003
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.

86 lines
2.8 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. [range(0, 1024)] // Don't allow blobs of >1K (chars) size (prevents caller from allocating too much memory)
  10. unsigned short ccLength;
  11. [range(0, 1025)] // Don't allow blobs of >1K (chars) size (prevents caller from allocating too much memory)
  12. unsigned short ccSize;
  13. [size_is(ccSize), length_is(ccLength)]
  14. wchar_t *pwsz;
  15. } SECL_STRING, *PSECL_STRING;
  16. typedef struct _SECL_BLOB {
  17. [range(0, 10*1024)] // Don't allow blobs of >10K size (prevents caller from allocating too much memory)
  18. unsigned long cb;
  19. [size_is(cb)]
  20. unsigned char *pb;
  21. } SECL_BLOB, *PSECL_BLOB;
  22. typedef struct _SECL_SLI {
  23. SECL_STRING ssUsername;
  24. SECL_STRING ssDomain;
  25. SECL_STRING ssPassword;
  26. SECL_STRING ssApplicationName;
  27. SECL_STRING ssCommandLine;
  28. SECL_STRING ssCurrentDirectory;
  29. SECL_STRING ssTitle;
  30. SECL_STRING ssDesktop;
  31. SECL_BLOB sbEnvironment;
  32. unsigned long ulProcessId;
  33. unsigned long ulLogonIdLowPart;
  34. signed long lLogonIdHighPart;
  35. unsigned long ulLogonFlags;
  36. unsigned long ulCreationFlags;
  37. // Private, used by seclogon:
  38. unsigned long ulSeclogonFlags;
  39. unsigned __int64 hWinsta; // Handle to the client's windowstation
  40. unsigned __int64 hDesk; // Handle to the client's desktop
  41. unsigned __int64 hToken; // non-NULL for CreateProcessWithToken
  42. } SECL_SLI, *PSECL_SLI;
  43. typedef struct _SECL_SLRI {
  44. unsigned __int64 hProcess;
  45. unsigned __int64 hThread;
  46. unsigned long ulProcessId;
  47. unsigned long ulThreadId;
  48. unsigned long ulErrorCode;
  49. } SECL_SLRI, *PSECL_SLRI;
  50. void SeclCreateProcessWithLogonW
  51. ([in] handle_t hRPCBinding,
  52. [in, ref] SECL_SLI *psli,
  53. [out, ref] SECL_SLRI *pslri);
  54. };
  55. cpp_quote("#define wszSeclogonSharedProcEndpointName L\"SECLOGON\"")
  56. cpp_quote("#define wszSvcName L\"seclogon\"")
  57. cpp_quote("#define SECLOGON_CALLER_SPECIFIED_DESKTOP 0x00000001")
  58. // Disable some warnings for the benefit of the midl compiler:
  59. cpp_quote("#pragma warning(disable:4211) // nonstandard extension used : redefined extern to static")
  60. cpp_quote("#pragma warning(disable:4232) // nonstandard extension used : 'x' : address of dllimport 'y' is not static, identity not guaranteed")
  61. cpp_quote("#pragma warning(disable:4310) // cast truncates constant value")