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.

772 lines
24 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] DWORD *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] DWORD *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. );
  358. BOOLEAN
  359. RpcWinStationNotifyLogoff(
  360. [in] SERVER_HANDLE hServer,
  361. [in] DWORD ClientLogonId,
  362. [in] DWORD ClientProcessId,
  363. [out] DWORD *pResult
  364. );
  365. BOOLEAN
  366. OldRpcWinStationEnumerateProcesses(
  367. [in] SERVER_HANDLE hServer,
  368. [out] DWORD *pResult,
  369. [out,size_is(ByteCount)] PBYTE pProcessBuffer,
  370. [in] DWORD ByteCount
  371. );
  372. BOOLEAN
  373. RpcWinStationAnnoyancePopup(
  374. [in] SERVER_HANDLE hServer,
  375. [out] DWORD *pResult,
  376. [in] DWORD LogonIdld
  377. );
  378. BOOLEAN
  379. RpcWinStationEnumerateProcesses(
  380. [in] SERVER_HANDLE hServer,
  381. [out] DWORD *pResult,
  382. [out,size_is(ByteCount)] PBYTE pProcessBuffer,
  383. [in] DWORD ByteCount
  384. );
  385. BOOLEAN
  386. RpcWinStationTerminateProcess(
  387. [in] SERVER_HANDLE hServer,
  388. [out] DWORD *pResult,
  389. [in] DWORD ProcessId,
  390. [in] DWORD ExitCode
  391. );
  392. BOOLEAN
  393. RpcServerNWLogonSetAdmin(
  394. [in] SERVER_HANDLE hServer,
  395. [out] DWORD *pResult,
  396. [in,size_is(ServerNameSize)] PWCHAR pServerName,
  397. [in] DWORD ServerNameSize,
  398. [in,out,unique,size_is(ByteCount)] PCHAR pNWLogon,
  399. [in] DWORD ByteCount
  400. );
  401. BOOLEAN
  402. RpcServerNWLogonQueryAdmin(
  403. [in] SERVER_HANDLE hServer,
  404. [out] DWORD *pResult,
  405. [in,size_is(ServerNameSize)] PWCHAR pServerName,
  406. [in] DWORD ServerNameSize,
  407. [in,out,unique,size_is(ByteCount)] PCHAR pNWLogon,
  408. [in] DWORD ByteCount
  409. );
  410. BOOLEAN
  411. RpcWinStationCheckForApplicationName(
  412. [in] SERVER_HANDLE hServer,
  413. [out] DWORD *pResult,
  414. [in] DWORD LogonId,
  415. [in,out,size_is(UserNameSize)] PWCHAR pUserName,
  416. [in] DWORD UserNameSize,
  417. [in,out,size_is(DomainSize)] PWCHAR pDomain,
  418. [in] DWORD DomainSize,
  419. [in,out,size_is(*pPasswordSize)] PWCHAR pPassword,
  420. [in,out] DWORD *pPasswordSize,
  421. [in] DWORD MaxPasswordSize,
  422. [in,out] PCHAR pSeed,
  423. [out] PBOOLEAN pfPublished,
  424. [out] PBOOLEAN pfAnonymous
  425. );
  426. BOOLEAN
  427. RpcWinStationGetApplicationInfo(
  428. [in] SERVER_HANDLE hServer,
  429. [out] DWORD *pResult,
  430. [in] DWORD LogonId,
  431. [out] PBOOLEAN pfPublished,
  432. [out] PBOOLEAN pfAnonymous
  433. );
  434. BOOLEAN
  435. RpcWinStationNtsdDebug(
  436. [in] SERVER_HANDLE hServer,
  437. [out] DWORD *pResult,
  438. [in] DWORD LogonId,
  439. [in] LONG ProcessId,
  440. [in] ULONG DbgProcessId,
  441. [in] ULONG DbgThreadId,
  442. [in] DWORD_PTR AttachCompletionRoutine
  443. );
  444. BOOLEAN
  445. RpcWinStationGetAllProcesses(
  446. [in] SERVER_HANDLE hServer,
  447. [out] DWORD *pResult,
  448. [in] ULONG Level,
  449. [in, out] ULONG *pNumberOfProcesses,
  450. [out, size_is(,*pNumberOfProcesses)]
  451. PTS_ALL_PROCESSES_INFO *ppTsAllProcessesInfo
  452. );
  453. BOOLEAN
  454. RpcWinStationGetProcessSid(
  455. [in] SERVER_HANDLE hServer,
  456. [in] DWORD dwUniqueProcessId,
  457. [in] LARGE_INTEGER ProcessStartTime,
  458. [out] LONG *pResult,
  459. [in,out,unique,size_is(dwSidSize)]
  460. PBYTE pProcessUserSid,
  461. [in] DWORD dwSidSize,
  462. [in,out] DWORD *pdwSizeNeeded
  463. );
  464. BOOLEAN
  465. RpcWinStationGetTermSrvCountersValue(
  466. [in] SERVER_HANDLE hServer,
  467. [out] DWORD *pResult,
  468. [in] DWORD dwEntries,
  469. [in,out, size_is(dwEntries)] PTS_COUNTER pCounter
  470. );
  471. BOOLEAN
  472. RpcWinStationReInitializeSecurity(
  473. [in] SERVER_HANDLE hServer,
  474. [out] DWORD *pResult
  475. );
  476. LONG
  477. RpcWinStationBroadcastSystemMessage(
  478. [in ] SERVER_HANDLE hServer,
  479. [in] ULONG sessionID,
  480. [in] ULONG timeOut,
  481. [in] DWORD dwFlags,
  482. [in,out,ptr] DWORD *lpdwRecipients,
  483. [in] ULONG uiMessage,
  484. [in] UINT_PTR wParam,
  485. [in] LONG_PTR lParam,
  486. [in,size_is(bufferSize)] PBYTE pBuffer,
  487. [in] ULONG bufferSize,
  488. [in] BOOLEAN fBufferHasValidData,
  489. [out] LONG *pResponse
  490. );
  491. LONG
  492. RpcWinStationSendWindowMessage(
  493. [in] SERVER_HANDLE hServer,
  494. [in] ULONG sessionID,
  495. [in] ULONG timeOut,
  496. [in] ULONG hWnd,
  497. [in] ULONG Msg,
  498. [in] UINT_PTR wParam,
  499. [in] LONG_PTR lParam,
  500. [in,size_is(bufferSize)] PBYTE pBuffer,
  501. [in] ULONG bufferSize,
  502. [in] BOOLEAN fBufferHasValidData,
  503. [out] LONG *pResponse
  504. );
  505. BOOLEAN
  506. RpcWinStationNotifyNewSession(
  507. [in] SERVER_HANDLE hServer,
  508. [out] DWORD *pResult,
  509. [in] DWORD ClientLogonId
  510. );
  511. BOOLEAN
  512. RpcServerGetInternetConnectorStatus(
  513. [in] SERVER_HANDLE hServer,
  514. [out] DWORD *pResult,
  515. [out] PBOOLEAN pfEnabled
  516. );
  517. BOOLEAN
  518. RpcServerSetInternetConnectorStatus(
  519. [in] SERVER_HANDLE hServer,
  520. [out] DWORD *pResult,
  521. [in] BOOLEAN fEnabled
  522. );
  523. BOOLEAN
  524. RpcServerQueryInetConnectorInformation(
  525. [in] SERVER_HANDLE hServer,
  526. [out] DWORD *pResult,
  527. [in,out,unique,size_is(WinStationInformationLength)] PCHAR pWinStationInformation,
  528. [in] DWORD WinStationInformationLength,
  529. [out] DWORD *pReturnLength
  530. );
  531. BOOLEAN
  532. RpcWinStationGetLanAdapterName(
  533. [in] SERVER_HANDLE hServer,
  534. [out] DWORD *pResult,
  535. [in] DWORD PdNameSize,
  536. [in,size_is(PdNameSize)] PWCHAR pPdName,
  537. [in] ULONG LanAdapter,
  538. [out] ULONG *pLength,
  539. [out, size_is(,*pLength)] PWCHAR *ppLanAdapter
  540. );
  541. BOOLEAN
  542. RpcWinStationUpdateUserConfig(
  543. [in] SERVER_HANDLE hServer,
  544. [in] DWORD ClientLogonId,
  545. [in] DWORD ClientProcessId,
  546. [in] DWORD UserToken,
  547. [out] DWORD *pResult
  548. );
  549. BOOLEAN
  550. RpcWinStationQueryLogonCredentials(
  551. [in] SERVER_HANDLE hServer,
  552. [in] ULONG LogonId,
  553. [out,size_is(,*pcbCredentials)] PCHAR *ppCredentials,
  554. [in,out] ULONG *pcbCredentials
  555. );
  556. BOOLEAN
  557. RpcWinStationRegisterConsoleNotification(
  558. [in] SERVER_HANDLE hServer,
  559. [out] DWORD *pResult,
  560. [in] ULONG SessionId,
  561. [in] ULONG hWnd,
  562. [in] DWORD dwFlags
  563. );
  564. BOOLEAN
  565. RpcWinStationUnRegisterConsoleNotification(
  566. [in] SERVER_HANDLE hServer,
  567. [out] DWORD *pResult,
  568. [in] ULONG SessionId,
  569. [in] ULONG hWnd
  570. );
  571. BOOLEAN
  572. RpcWinStationUpdateSettings(
  573. [in] SERVER_HANDLE hServer,
  574. [out] DWORD *pResult,
  575. [in] DWORD SettingsClass,
  576. [in] DWORD SettingsParameters
  577. );
  578. BOOLEAN
  579. RpcWinStationShadowStop(
  580. [in] SERVER_HANDLE hServer,
  581. [out] DWORD *pResult,
  582. [in] DWORD LogonId,
  583. [in] BOOLEAN bWait
  584. );
  585. BOOLEAN
  586. RpcWinStationCloseServerEx(
  587. [in, out] SERVER_HANDLE *phServer,
  588. [out] DWORD *pResult
  589. );
  590. BOOLEAN
  591. RpcWinStationIsHelpAssistantSession(
  592. [in] SERVER_HANDLE hServer,
  593. [out] DWORD* pResult,
  594. [in] ULONG SessionId
  595. );
  596. BOOLEAN
  597. RpcWinStationGetMachinePolicy(
  598. [in] SERVER_HANDLE hServer,
  599. [in,out,size_is(bufferSize)] PBYTE pPolicy,
  600. [in] ULONG bufferSize
  601. );
  602. BOOLEAN
  603. RpcWinStationUpdateClientCachedCredentials(
  604. [in] SERVER_HANDLE hServer,
  605. [out] DWORD *pResult,
  606. [in] DWORD ClientLogonId,
  607. [in] ULONG_PTR ClientProcessId,
  608. [in,size_is(DomainSize)] PWCHAR pDomain,
  609. [in] DWORD DomainSize,
  610. [in,size_is(UserNameSize)] PWCHAR pUserName,
  611. [in] DWORD UserNameSize
  612. );
  613. BOOLEAN
  614. RpcWinStationFUSCanRemoteUserDisconnect(
  615. [in] SERVER_HANDLE hServer,
  616. [out] DWORD *pResult,
  617. [in] DWORD TargetLogonId,
  618. [in] DWORD ClientLogonId,
  619. [in] ULONG_PTR ClientProcessId,
  620. [in,size_is(DomainSize)] PWCHAR pDomain,
  621. [in] DWORD DomainSize,
  622. [in,size_is(UserNameSize)] PWCHAR pUserName,
  623. [in] DWORD UserNameSize
  624. );
  625. BOOLEAN
  626. RpcWinStationCheckLoopBack(
  627. [in] SERVER_HANDLE hServer,
  628. [out] DWORD *pResult,
  629. [in] DWORD ClientLogonId,
  630. [in] DWORD TargetLogonId,
  631. [in,size_is(NameSize)] PWCHAR pTargetServerName,
  632. [in] DWORD NameSize
  633. );
  634. BOOLEAN
  635. RpcConnectCallback(
  636. [in] SERVER_HANDLE hServer,
  637. [out] DWORD *pResult,
  638. [in] DWORD TimeOut,
  639. [in] ULONG AddressType,
  640. [in,size_is(AddressSize)] PBYTE pAddress,
  641. [in] ULONG AddressSize
  642. );
  643. BOOLEAN
  644. RpcWinStationNotifyDisconnectPipe(
  645. [in] SERVER_HANDLE hServer,
  646. [out] DWORD *pResult,
  647. [in] DWORD ClientLogonId,
  648. [in] ULONG_PTR ClientProcessId
  649. );
  650. BOOLEAN
  651. RpcWinStationSessionInitialized(
  652. [in] SERVER_HANDLE hServer,
  653. [out] DWORD *pResult,
  654. [in] DWORD ClientLogonId,
  655. [in] ULONG_PTR ClientProcessId
  656. );
  657. BOOLEAN
  658. RpcRemoteAssistancePrepareSystemRestore(
  659. [in] SERVER_HANDLE hServer,
  660. [out] DWORD* pResult
  661. );
  662. BOOLEAN
  663. RpcWinStationGetAllProcesses_NT6(
  664. [in] SERVER_HANDLE hServer,
  665. [out] DWORD *pResult,
  666. [in] ULONG Level,
  667. [in, out] ULONG *pNumberOfProcesses,
  668. [out, size_is(,*pNumberOfProcesses)]
  669. PTS_ALL_PROCESSES_INFO_NT6 *ppTsAllProcessesInfo
  670. );
  671. //
  672. // Do autoreconnection policy in an atomic operation.
  673. // Return status indicates if an autoreconnection took
  674. // place.
  675. //
  676. BOOLEAN
  677. RpcWinStationAutoReconnect(
  678. [in] SERVER_HANDLE hServer,
  679. [out] DWORD *pResult,
  680. [in] DWORD LogonId,
  681. [in] DWORD flags
  682. );
  683. }