windows-nt/Source/XPSP1/NT/ds/netapi/svcdlls/seclogon/idl/seclogon.idl
2020-09-26 16:20:57 +08:00

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")