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.

813 lines
26 KiB

  1. /*************************************************************************
  2. *
  3. * icaapi.idl
  4. *
  5. * DCE RPC IDL file for ICA API's (WinStations)
  6. *
  7. * Copyright Microsoft Corporation. 1998
  8. *
  9. *
  10. *
  11. *
  12. *************************************************************************/
  13. //
  14. //
  15. // NOTE: All WINSTATION API data structures are declared as variable sized
  16. // character buffers to RPC with the "size_is()" modifier. We do not
  17. // break out each structure in IDL since we do not need to handle
  18. // big and little endian conversion issues. IE: Clients will be
  19. // Windows NT, and servers will be WinFrame based on Windows NT.
  20. //
  21. // If we need to support big endian clients for the client side of the
  22. // API's, then the proper IDL break out must be done for each structure,
  23. // with its discriminant, which is the information type ENUM.
  24. // (could use user marshall for tricky ones)
  25. //
  26. //
  27. // An RPC context_handle maintains state on the server for an open
  28. // connection from a given client. This allows the server to store
  29. // state information about the client.
  30. // IE: authentication information, etc.
  31. //
  32. // The RPC runtime implements a keep alive mechanism, and calls
  33. // a server run down routine when the connection goes away.
  34. //
  35. typedef [context_handle] void *SERVER_HANDLE;
  36. //
  37. // The number uuid was generated by UUIDGEN, and
  38. // is unique across time and space. This number should
  39. // never change for this service.
  40. //
  41. [
  42. uuid(5ca4a760-ebb1-11cf-8611-00a0245420ed),
  43. version(1.0),
  44. pointer_default(unique)
  45. ]
  46. //
  47. // This is our service "program"
  48. //
  49. interface IcaApi
  50. {
  51. //
  52. // Note: Because of header file include problems, the NT headers
  53. // can not be brought in since the auto generate RPC header
  54. // includes windows headers first. So we avoid any definitions
  55. // in winsta.h and use generic, sized types. Our winsta.dll
  56. // client stub handles the actual winstation typing.
  57. //
  58. import "import.idl";
  59. //
  60. // Return the RPC context handle for the open server
  61. //
  62. BOOLEAN
  63. RpcWinStationOpenServer(
  64. [in] handle_t hBinding,
  65. [out] DWORD *pResult,
  66. [out] SERVER_HANDLE *phServer
  67. );
  68. //
  69. // Close the context handle
  70. //
  71. BOOLEAN
  72. RpcWinStationCloseServer(
  73. [in] SERVER_HANDLE hServer,
  74. [out] DWORD *pResult
  75. );
  76. //
  77. // Ping the server for testing. Could be used for
  78. // keep alive in WinFrame clusters.
  79. //
  80. BOOLEAN
  81. RpcIcaServerPing(
  82. [in] SERVER_HANDLE hServer,
  83. [out] DWORD *pResult
  84. );
  85. //
  86. // WinStationEnumerate
  87. //
  88. // Note use of size_is() for variable length buffer handling
  89. //
  90. BOOLEAN
  91. RpcWinStationEnumerate(
  92. [in] SERVER_HANDLE hServer,
  93. [out] DWORD *pResult,
  94. [in,out] PULONG pEntries,
  95. [in,out,unique,size_is(*pByteCount)] PCHAR pLogonId,
  96. [in,out] PULONG pByteCount,
  97. [in,out] PULONG pIndex
  98. );
  99. //
  100. // The RPC function differs from the prototype in winsta.h
  101. // since it handles a changing size for WINSTATIONNAMEW
  102. //
  103. BOOLEAN
  104. RpcWinStationRename(
  105. [in] SERVER_HANDLE hServer,
  106. [out] DWORD *pResult,
  107. [in,size_is(NameOldSize)] PWCHAR pWinStationNameOld,
  108. [in] DWORD NameOldSize,
  109. [in,size_is(NameNewSize)] PWCHAR pWinStationNameNew,
  110. [in] DWORD NameNewSize
  111. );
  112. BOOLEAN
  113. RpcWinStationQueryInformation(
  114. [in] SERVER_HANDLE hServer,
  115. [out] DWORD *pResult,
  116. [in] DWORD LogonId,
  117. [in] DWORD WinStationInformationClass,
  118. [in,out,unique,size_is(WinStationInformationLength)] PCHAR pWinStationInformation,
  119. [in] DWORD WinStationInformationLength,
  120. [out] DWORD *pReturnLength
  121. );
  122. BOOLEAN
  123. RpcWinStationSetInformation(
  124. [in] SERVER_HANDLE hServer,
  125. [out] DWORD *pResult,
  126. [in] DWORD LogonId,
  127. [in] DWORD WinStationInformationClass,
  128. [in,out,unique,size_is(WinStationInformationLength)] PCHAR pWinStationInformation,
  129. [in] DWORD WinStationInformationLength
  130. );
  131. BOOLEAN
  132. RpcWinStationSendMessage(
  133. [in] SERVER_HANDLE hServer,
  134. [out] DWORD *pResult,
  135. [in] DWORD LogonId,
  136. [in,size_is(TitleLength)] PWCHAR pTitle,
  137. [in] DWORD TitleLength,
  138. [in,size_is(MessageLength)] PWCHAR pMessage,
  139. [in] DWORD MessageLength,
  140. [in] DWORD Style,
  141. [in] DWORD Timeout,
  142. [out] DWORD *pRespsonse,
  143. [in] BOOLEAN DoNotWait
  144. );
  145. BOOLEAN
  146. RpcLogonIdFromWinStationName(
  147. [in] SERVER_HANDLE hServer,
  148. [out] DWORD *pResult,
  149. [in,size_is(NameSize)] PWCHAR pWinStationName,
  150. [in] DWORD NameSize,
  151. [out] DWORD *pLogonId
  152. );
  153. BOOLEAN
  154. RpcWinStationNameFromLogonId(
  155. [in] SERVER_HANDLE hServer,
  156. [out] DWORD *pResult,
  157. [in] DWORD LoginId,
  158. [in,out,size_is(NameSize)] PWCHAR pWinStationName,
  159. [in] DWORD NameSize
  160. );
  161. BOOLEAN
  162. RpcWinStationConnect(
  163. [in] SERVER_HANDLE hServer,
  164. [out] DWORD *pResult,
  165. [in] DWORD ClientLogonId,
  166. [in] DWORD ConnectLogonId,
  167. [in] DWORD TargetLogonId,
  168. [in,size_is(PasswordSize)] PWCHAR pPassword,
  169. [in] DWORD PasswordSize,
  170. [in] BOOLEAN Wait
  171. );
  172. BOOLEAN
  173. RpcWinStationVirtualOpen(
  174. [in] SERVER_HANDLE hServer,
  175. [out] DWORD *pResult,
  176. [in] DWORD LogonId,
  177. [in] DWORD Pid,
  178. [in,size_is(NameSize)] PCHAR pVirtualName,
  179. [in] DWORD NameSize,
  180. [out] ULONG_PTR *pHandle
  181. );
  182. BOOLEAN
  183. RpcWinStationBeepOpen(
  184. [in] SERVER_HANDLE hServer,
  185. [out] DWORD *pResult,
  186. [in] DWORD LogonId,
  187. [in] DWORD Pid,
  188. [out] ULONG_PTR *pHandle
  189. );
  190. BOOLEAN
  191. RpcWinStationDisconnect(
  192. [in] SERVER_HANDLE hServer,
  193. [out] DWORD *pResult,
  194. [in] DWORD LogonId,
  195. [in] BOOLEAN bWait
  196. );
  197. BOOLEAN
  198. RpcWinStationReset(
  199. [in] SERVER_HANDLE hServer,
  200. [out] DWORD *pResult,
  201. [in] DWORD LogonId,
  202. [in] BOOLEAN bWait
  203. );
  204. BOOLEAN
  205. RpcWinStationShutdownSystem(
  206. [in] SERVER_HANDLE hServer,
  207. [out] DWORD *pResult,
  208. [in] DWORD ClientLogonId,
  209. [in] DWORD ShutdownFlags
  210. );
  211. BOOLEAN
  212. RpcWinStationWaitSystemEvent(
  213. [in] SERVER_HANDLE hServer,
  214. [out] DWORD *pResult,
  215. [in] DWORD EventMask,
  216. [out] DWORD *pEventFlags
  217. );
  218. BOOLEAN
  219. RpcWinStationShadow(
  220. [in] SERVER_HANDLE hServer,
  221. [out] DWORD *pResult,
  222. [in] DWORD LogonId,
  223. [in,unique,size_is(NameSize)] PWCHAR pTargetServerName,
  224. [in] DWORD NameSize,
  225. [in] DWORD TargetLogonId,
  226. [in] BYTE HotKeyVk,
  227. [in] USHORT HotkeyModifiers
  228. );
  229. BOOLEAN
  230. RpcWinStationShadowTargetSetup(
  231. [in] SERVER_HANDLE hServer,
  232. [out] DWORD *pResult,
  233. [in] DWORD LogonId
  234. );
  235. BOOLEAN
  236. RpcWinStationShadowTarget(
  237. [in] SERVER_HANDLE hServer,
  238. [out] DWORD *pResult,
  239. [in] DWORD LogonId,
  240. [in,size_is(ConfigSize)] PBYTE pConfig,
  241. [in] DWORD ConfigSize,
  242. [in,size_is(AddressSize)] PBYTE pAddress,
  243. [in] DWORD AddressSize,
  244. [in,size_is(ModuleDataSize)] PBYTE pModuleData,
  245. [in] DWORD ModuleDataSize,
  246. [in,size_is(ThinwireDataSize)] PBYTE pThinwireData,
  247. [in] DWORD ThinwireDataSize,
  248. [in,size_is(ClientNameSize)] PBYTE pClientName,
  249. [in] DWORD ClientNameSize
  250. );
  251. BOOLEAN
  252. RpcWinStationGenerateLicense(
  253. [in] SERVER_HANDLE hServer,
  254. [out] DWORD *pResult,
  255. [in,size_is(StringSize)] PWCHAR pSerialNumberString,
  256. [in] DWORD StringSize,
  257. [out,size_is(LicenseSize)] PCHAR pLicense,
  258. [in] DWORD LicenseSize
  259. );
  260. BOOLEAN
  261. RpcWinStationInstallLicense(
  262. [in] SERVER_HANDLE hServer,
  263. [out] DWORD *pResult,
  264. [in,out,size_is(LicenseSize)] PCHAR pLicense,
  265. [in] DWORD LicenseSize
  266. );
  267. BOOLEAN
  268. RpcWinStationEnumerateLicenses(
  269. [in] SERVER_HANDLE hServer,
  270. [out] DWORD *pResult,
  271. [in,out] DWORD *pIndex,
  272. [in,out] DWORD *pEntries,
  273. [out,size_is(LicenseSize)] PCHAR pLicense,
  274. [in] DWORD LicenseSize,
  275. [in,out] DWORD *pByteCount
  276. );
  277. BOOLEAN
  278. RpcWinStationActivateLicense(
  279. [in] SERVER_HANDLE hServer,
  280. [out] DWORD *pResult,
  281. [in,out,size_is(LicenseSize)] PCHAR pLicense,
  282. [in] DWORD LicenseSize,
  283. [in,size_is(StringSize)] PWCHAR pActivationCode,
  284. [in] DWORD StringSize
  285. );
  286. BOOLEAN
  287. RpcWinStationRemoveLicense(
  288. [in] SERVER_HANDLE hServer,
  289. [out] DWORD *pResult,
  290. [in,size_is(LicenseSize)] PCHAR pLicense,
  291. [in] DWORD LicenseSize
  292. );
  293. BOOLEAN
  294. RpcWinStationQueryLicense(
  295. [in] SERVER_HANDLE hServer,
  296. [out] DWORD *pResult,
  297. [out,size_is(ByteCount)] PCHAR pLicenseCounts,
  298. [in] DWORD ByteCount
  299. );
  300. BOOLEAN
  301. RpcWinStationSetPoolCount(
  302. [in] SERVER_HANDLE hServer,
  303. [out] DWORD *pResult,
  304. [in,out,size_is(LicenseSize)] PCHAR pLicense,
  305. [in] DWORD LicenseSize
  306. );
  307. BOOLEAN
  308. RpcWinStationQueryUpdateRequired(
  309. [in] SERVER_HANDLE hServer,
  310. [out] DWORD *pResult,
  311. [out] DWORD *pUpdateFlag
  312. );
  313. BOOLEAN
  314. RpcWinStationCallback(
  315. [in] SERVER_HANDLE hServer,
  316. [out] DWORD *pResult,
  317. [in] DWORD LogonId,
  318. [in,size_is(PhoneNumberSize)] PWCHAR pPhoneNumber,
  319. [in] DWORD PhoneNumberSize
  320. );
  321. BOOLEAN
  322. RpcWinStationBreakPoint(
  323. [in] SERVER_HANDLE hServer,
  324. [out] DWORD *pResult,
  325. [in] DWORD LogonId,
  326. [in] BOOLEAN KernelFlag
  327. );
  328. BOOLEAN
  329. RpcWinStationReadRegistry(
  330. [in] SERVER_HANDLE hServer,
  331. [out] DWORD *pResult
  332. );
  333. BOOLEAN
  334. RpcWinStationWaitForConnect(
  335. [in] SERVER_HANDLE hServer,
  336. [out] DWORD *pResult,
  337. [in] DWORD ClientLogonId,
  338. [in] DWORD ClientProcessId
  339. );
  340. BOOLEAN
  341. RpcWinStationNotifyLogon(
  342. [in] SERVER_HANDLE hServer,
  343. [out] DWORD *pResult,
  344. [in] DWORD ClientLogonId,
  345. [in] DWORD ClientProcessId,
  346. [in] BOOLEAN fUserIsAdmin,
  347. [in] DWORD UserToken,
  348. [in,size_is(DomainSize)] PWCHAR pDomain,
  349. [in] DWORD DomainSize,
  350. [in,size_is(UserNameSize)] PWCHAR pUserName,
  351. [in] DWORD UserNameSize,
  352. [in,size_is(PasswordSize)] PWCHAR pPassword,
  353. [in] DWORD PasswordSize,
  354. [in] UCHAR Seed,
  355. [in,size_is(ConfigSize)] PCHAR pUserConfig,
  356. [in] DWORD ConfigSize,
  357. [out] BOOLEAN *pfIsRedirected
  358. );
  359. BOOLEAN
  360. RpcWinStationNotifyLogoff(
  361. [in] SERVER_HANDLE hServer,
  362. [in] DWORD ClientLogonId,
  363. [in] DWORD ClientProcessId,
  364. [out] DWORD *pResult
  365. );
  366. BOOLEAN
  367. OldRpcWinStationEnumerateProcesses(
  368. [in] SERVER_HANDLE hServer,
  369. [out] DWORD *pResult,
  370. [out,size_is(ByteCount)] PBYTE pProcessBuffer,
  371. [in] DWORD ByteCount
  372. );
  373. BOOLEAN
  374. RpcWinStationAnnoyancePopup(
  375. [in] SERVER_HANDLE hServer,
  376. [out] DWORD *pResult,
  377. [in] DWORD LogonIdld
  378. );
  379. BOOLEAN
  380. RpcWinStationEnumerateProcesses(
  381. [in] SERVER_HANDLE hServer,
  382. [out] DWORD *pResult,
  383. [out,size_is(ByteCount)] PBYTE pProcessBuffer,
  384. [in] DWORD ByteCount
  385. );
  386. BOOLEAN
  387. RpcWinStationTerminateProcess(
  388. [in] SERVER_HANDLE hServer,
  389. [out] DWORD *pResult,
  390. [in] DWORD ProcessId,
  391. [in] DWORD ExitCode
  392. );
  393. BOOLEAN
  394. RpcServerNWLogonSetAdmin(
  395. [in] SERVER_HANDLE hServer,
  396. [out] DWORD *pResult,
  397. [in,size_is(ServerNameSize)] PWCHAR pServerName,
  398. [in] DWORD ServerNameSize,
  399. [in,out,unique,size_is(ByteCount)] PCHAR pNWLogon,
  400. [in] DWORD ByteCount
  401. );
  402. BOOLEAN
  403. RpcServerNWLogonQueryAdmin(
  404. [in] SERVER_HANDLE hServer,
  405. [out] DWORD *pResult,
  406. [in,size_is(ServerNameSize)] PWCHAR pServerName,
  407. [in] DWORD ServerNameSize,
  408. [in,out,unique,size_is(ByteCount)] PCHAR pNWLogon,
  409. [in] DWORD ByteCount
  410. );
  411. BOOLEAN
  412. RpcWinStationCheckForApplicationName(
  413. [in] SERVER_HANDLE hServer,
  414. [out] DWORD *pResult,
  415. [in] DWORD LogonId,
  416. [in,out,size_is(UserNameSize)] PWCHAR pUserName,
  417. [in] DWORD UserNameSize,
  418. [in,out,size_is(DomainSize)] PWCHAR pDomain,
  419. [in] DWORD DomainSize,
  420. [in,out,size_is(*pPasswordSize)] PWCHAR pPassword,
  421. [in,out] DWORD *pPasswordSize,
  422. [in] DWORD MaxPasswordSize,
  423. [in,out] PCHAR pSeed,
  424. [out] PBOOLEAN pfPublished,
  425. [out] PBOOLEAN pfAnonymous
  426. );
  427. BOOLEAN
  428. RpcWinStationGetApplicationInfo(
  429. [in] SERVER_HANDLE hServer,
  430. [out] DWORD *pResult,
  431. [in] DWORD LogonId,
  432. [out] PBOOLEAN pfPublished,
  433. [out] PBOOLEAN pfAnonymous
  434. );
  435. BOOLEAN
  436. RpcWinStationNtsdDebug(
  437. [in] SERVER_HANDLE hServer,
  438. [out] DWORD *pResult,
  439. [in] DWORD LogonId,
  440. [in] LONG ProcessId,
  441. [in] ULONG DbgProcessId,
  442. [in] ULONG DbgThreadId,
  443. [in] DWORD_PTR AttachCompletionRoutine
  444. );
  445. BOOLEAN
  446. RpcWinStationGetAllProcesses(
  447. [in] SERVER_HANDLE hServer,
  448. [out] DWORD *pResult,
  449. [in] ULONG Level,
  450. [in, out] ULONG *pNumberOfProcesses,
  451. [out, size_is(,*pNumberOfProcesses)]
  452. PTS_ALL_PROCESSES_INFO *ppTsAllProcessesInfo
  453. );
  454. BOOLEAN
  455. RpcWinStationGetProcessSid(
  456. [in] SERVER_HANDLE hServer,
  457. [in] DWORD dwUniqueProcessId,
  458. [in] LARGE_INTEGER ProcessStartTime,
  459. [out] LONG *pResult,
  460. [in,out,unique,size_is(dwSidSize)]
  461. PBYTE pProcessUserSid,
  462. [in] DWORD dwSidSize,
  463. [in,out] DWORD *pdwSizeNeeded
  464. );
  465. BOOLEAN
  466. RpcWinStationGetTermSrvCountersValue(
  467. [in] SERVER_HANDLE hServer,
  468. [out] DWORD *pResult,
  469. [in] DWORD dwEntries,
  470. [in,out, size_is(dwEntries)] PTS_COUNTER pCounter
  471. );
  472. BOOLEAN
  473. RpcWinStationReInitializeSecurity(
  474. [in] SERVER_HANDLE hServer,
  475. [out] DWORD *pResult
  476. );
  477. LONG
  478. RpcWinStationBroadcastSystemMessage(
  479. [in ] SERVER_HANDLE hServer,
  480. [in] ULONG sessionID,
  481. [in] ULONG timeOut,
  482. [in] DWORD dwFlags,
  483. [in,out,ptr] DWORD *lpdwRecipients,
  484. [in] ULONG uiMessage,
  485. [in] UINT_PTR wParam,
  486. [in] LONG_PTR lParam,
  487. [in,size_is(bufferSize)] PBYTE pBuffer,
  488. [in] ULONG bufferSize,
  489. [in] BOOLEAN fBufferHasValidData,
  490. [out] LONG *pResponse
  491. );
  492. LONG
  493. RpcWinStationSendWindowMessage(
  494. [in] SERVER_HANDLE hServer,
  495. [in] ULONG sessionID,
  496. [in] ULONG timeOut,
  497. [in] ULONG hWnd,
  498. [in] ULONG Msg,
  499. [in] UINT_PTR wParam,
  500. [in] LONG_PTR lParam,
  501. [in,size_is(bufferSize)] PBYTE pBuffer,
  502. [in] ULONG bufferSize,
  503. [in] BOOLEAN fBufferHasValidData,
  504. [out] LONG *pResponse
  505. );
  506. BOOLEAN
  507. RpcWinStationNotifyNewSession(
  508. [in] SERVER_HANDLE hServer,
  509. [out] DWORD *pResult,
  510. [in] DWORD ClientLogonId
  511. );
  512. BOOLEAN
  513. RpcServerGetInternetConnectorStatus(
  514. [in] SERVER_HANDLE hServer,
  515. [out] DWORD *pResult,
  516. [out] PBOOLEAN pfEnabled
  517. );
  518. BOOLEAN
  519. RpcServerSetInternetConnectorStatus(
  520. [in] SERVER_HANDLE hServer,
  521. [out] DWORD *pResult,
  522. [in] BOOLEAN fEnabled
  523. );
  524. BOOLEAN
  525. RpcServerQueryInetConnectorInformation(
  526. [in] SERVER_HANDLE hServer,
  527. [out] DWORD *pResult,
  528. [in,out,unique,size_is(WinStationInformationLength)] PCHAR pWinStationInformation,
  529. [in] DWORD WinStationInformationLength,
  530. [out] DWORD *pReturnLength
  531. );
  532. BOOLEAN
  533. RpcWinStationGetLanAdapterName(
  534. [in] SERVER_HANDLE hServer,
  535. [out] DWORD *pResult,
  536. [in] DWORD PdNameSize,
  537. [in,size_is(PdNameSize)] PWCHAR pPdName,
  538. [in] ULONG LanAdapter,
  539. [out] ULONG *pLength,
  540. [out, size_is(,*pLength)] PWCHAR *ppLanAdapter
  541. );
  542. BOOLEAN
  543. RpcWinStationUpdateUserConfig(
  544. [in] SERVER_HANDLE hServer,
  545. [in] DWORD ClientLogonId,
  546. [in] DWORD ClientProcessId,
  547. [in] DWORD UserToken,
  548. [out] DWORD *pResult
  549. );
  550. BOOLEAN
  551. RpcWinStationQueryLogonCredentials(
  552. [in] SERVER_HANDLE hServer,
  553. [in] ULONG LogonId,
  554. [out,size_is(,*pcbCredentials)] PCHAR *ppCredentials,
  555. [in,out] ULONG *pcbCredentials
  556. );
  557. BOOLEAN
  558. RpcWinStationRegisterConsoleNotification(
  559. [in] SERVER_HANDLE hServer,
  560. [out] DWORD *pResult,
  561. [in] ULONG SessionId,
  562. [in] ULONG_PTR hWnd,
  563. [in] DWORD dwFlags,
  564. [in] DWORD dwMask
  565. );
  566. BOOLEAN
  567. RpcWinStationUnRegisterConsoleNotification(
  568. [in] SERVER_HANDLE hServer,
  569. [out] DWORD *pResult,
  570. [in] ULONG SessionId,
  571. [in] ULONG hWnd
  572. );
  573. BOOLEAN
  574. RpcWinStationUpdateSettings(
  575. [in] SERVER_HANDLE hServer,
  576. [out] DWORD *pResult,
  577. [in] DWORD SettingsClass,
  578. [in] DWORD SettingsParameters
  579. );
  580. BOOLEAN
  581. RpcWinStationShadowStop(
  582. [in] SERVER_HANDLE hServer,
  583. [out] DWORD *pResult,
  584. [in] DWORD LogonId,
  585. [in] BOOLEAN bWait
  586. );
  587. BOOLEAN
  588. RpcWinStationCloseServerEx(
  589. [in, out] SERVER_HANDLE *phServer,
  590. [out] DWORD *pResult
  591. );
  592. BOOLEAN
  593. RpcWinStationIsHelpAssistantSession(
  594. [in] SERVER_HANDLE hServer,
  595. [out] DWORD* pResult,
  596. [in] ULONG SessionId
  597. );
  598. BOOLEAN
  599. RpcWinStationGetMachinePolicy(
  600. [in] SERVER_HANDLE hServer,
  601. [in,out,size_is(bufferSize)] PBYTE pPolicy,
  602. [in] ULONG bufferSize
  603. );
  604. BOOLEAN
  605. RpcWinStationUpdateClientCachedCredentials(
  606. [in] SERVER_HANDLE hServer,
  607. [out] DWORD *pResult,
  608. [in] DWORD ClientLogonId,
  609. [in] ULONG_PTR ClientProcessId,
  610. [in,size_is(DomainSize)] PWCHAR pDomain,
  611. [in] DWORD DomainSize,
  612. [in,size_is(UserNameSize)] PWCHAR pUserName,
  613. [in] DWORD UserNameSize,
  614. [in] BOOLEAN fSmartCardLogon
  615. );
  616. BOOLEAN
  617. RpcWinStationFUSCanRemoteUserDisconnect(
  618. [in] SERVER_HANDLE hServer,
  619. [out] DWORD *pResult,
  620. [in] DWORD TargetLogonId,
  621. [in] DWORD ClientLogonId,
  622. [in] ULONG_PTR ClientProcessId,
  623. [in,size_is(DomainSize)] PWCHAR pDomain,
  624. [in] DWORD DomainSize,
  625. [in,size_is(UserNameSize)] PWCHAR pUserName,
  626. [in] DWORD UserNameSize
  627. );
  628. BOOLEAN
  629. RpcWinStationCheckLoopBack(
  630. [in] SERVER_HANDLE hServer,
  631. [out] DWORD *pResult,
  632. [in] DWORD ClientLogonId,
  633. [in] DWORD TargetLogonId,
  634. [in,size_is(NameSize)] PWCHAR pTargetServerName,
  635. [in] DWORD NameSize
  636. );
  637. BOOLEAN
  638. RpcConnectCallback(
  639. [in] SERVER_HANDLE hServer,
  640. [out] DWORD *pResult,
  641. [in] DWORD TimeOut,
  642. [in] ULONG AddressType,
  643. [in,size_is(AddressSize)] PBYTE pAddress,
  644. [in] ULONG AddressSize
  645. );
  646. BOOLEAN
  647. RpcWinStationNotifyDisconnectPipe(
  648. [in] SERVER_HANDLE hServer,
  649. [out] DWORD *pResult,
  650. [in] DWORD ClientLogonId,
  651. [in] ULONG_PTR ClientProcessId
  652. );
  653. BOOLEAN
  654. RpcWinStationSessionInitialized(
  655. [in] SERVER_HANDLE hServer,
  656. [out] DWORD *pResult,
  657. [in] DWORD ClientLogonId,
  658. [in] ULONG_PTR ClientProcessId
  659. );
  660. BOOLEAN
  661. RpcRemoteAssistancePrepareSystemRestore(
  662. [in] SERVER_HANDLE hServer,
  663. [out] DWORD* pResult
  664. );
  665. BOOLEAN
  666. RpcWinStationGetAllProcesses_NT6(
  667. [in] SERVER_HANDLE hServer,
  668. [out] DWORD *pResult,
  669. [in] ULONG Level,
  670. [in, out] ULONG *pNumberOfProcesses,
  671. [out, size_is(,*pNumberOfProcesses)]
  672. PTS_ALL_PROCESSES_INFO_NT6 *ppTsAllProcessesInfo
  673. );
  674. BOOLEAN
  675. RpcWinStationRegisterNotificationEvent(
  676. [in] SERVER_HANDLE hServer,
  677. [out] DWORD *pResult,
  678. [out] ULONG_PTR *pNotificationId,
  679. [in] ULONG_PTR EventHandle,
  680. [in] DWORD dwFlags,
  681. [in] DWORD dwMask,
  682. [in] ULONG SessionId,
  683. [in] ULONG ProcessId
  684. );
  685. BOOLEAN
  686. RpcWinStationUnRegisterNotificationEvent(
  687. [in] SERVER_HANDLE hServer,
  688. [out] DWORD *pResult,
  689. [in] ULONG_PTR NotificationId,
  690. [in] ULONG SessionId
  691. );
  692. //
  693. // Do autoreconnection policy in an atomic operation.
  694. // Return status indicates if an autoreconnection took
  695. // place.
  696. //
  697. BOOLEAN
  698. RpcWinStationAutoReconnect(
  699. [in] SERVER_HANDLE hServer,
  700. [out] DWORD *pResult,
  701. [in] DWORD LogonId,
  702. [in] DWORD flags
  703. );
  704. BOOLEAN
  705. RpcWinStationCheckAccess(
  706. [in] SERVER_HANDLE hServer,
  707. [out] DWORD *pResult,
  708. [in] DWORD ClientLogonId,
  709. [in] DWORD UserToken,
  710. [in] ULONG LogonId,
  711. [in] ULONG AccessMask
  712. );
  713. BOOLEAN
  714. RpcWinStationOpenSessionDirectory(
  715. [in] SERVER_HANDLE hServer,
  716. [out] DWORD *pResult,
  717. [in, string, max_is(64)] PWCHAR pszServerName
  718. );
  719. }