80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
[
|
|
uuid(12b81e99-f207-4a4c-85d3-77b42f76fd14),
|
|
version(1.0),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface ISeclogon
|
|
{
|
|
typedef struct _SECL_STRING {
|
|
unsigned long ccLength;
|
|
unsigned long ccSize;
|
|
[size_is(ccSize), length_is(ccLength)]
|
|
wchar_t *pwsz;
|
|
} SECL_STRING, *PSECL_STRING;
|
|
|
|
typedef struct _SECL_BLOB {
|
|
unsigned long cb;
|
|
[size_is(cb)]
|
|
unsigned char *pb;
|
|
} SECL_BLOB, *PSECL_BLOB;
|
|
|
|
typedef struct _SECL_SLI {
|
|
SECL_STRING ssUsername;
|
|
SECL_STRING ssDomain;
|
|
SECL_STRING ssPassword;
|
|
SECL_STRING ssApplicationName;
|
|
SECL_STRING ssCommandLine;
|
|
SECL_STRING ssCurrentDirectory;
|
|
SECL_STRING ssTitle;
|
|
SECL_STRING ssDesktop;
|
|
|
|
SECL_BLOB sbEnvironment;
|
|
|
|
unsigned long ulProcessId;
|
|
unsigned long ulLogonIdLowPart;
|
|
signed long lLogonIdHighPart;
|
|
unsigned long ulLogonFlags;
|
|
unsigned long ulCreationFlags;
|
|
|
|
// Private, used by seclogon:
|
|
unsigned long ulSeclogonFlags;
|
|
unsigned __int64 hWinsta; // Handle to the client's windowstation
|
|
unsigned __int64 hDesk; // Handle to the client's desktop
|
|
} SECL_SLI, *PSECL_SLI;
|
|
|
|
typedef struct _SECL_SLRI {
|
|
unsigned __int64 hProcess;
|
|
unsigned __int64 hThread;
|
|
unsigned long ulProcessId;
|
|
unsigned long ulThreadId;
|
|
unsigned long ulErrorCode;
|
|
} SECL_SLRI, *PSECL_SLRI;
|
|
|
|
|
|
void SeclCreateProcessWithLogonW
|
|
([in] handle_t hRPCBinding,
|
|
[in, ref] SECL_SLI *psli,
|
|
[out, ref] SECL_SLRI *pslri);
|
|
|
|
};
|
|
|
|
cpp_quote("#define wszSeclogonSharedProcEndpointName L\"SECLOGON\"")
|
|
cpp_quote("#define wszSvcName L\"seclogon\"")
|
|
|
|
cpp_quote("#define SECLOGON_CALLER_SPECIFIED_DESKTOP 0x00000001")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|