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.

837 lines
22 KiB

  1. ; Copyright (c) Microsoft Corporation. All rights reserved.
  2. [Types]
  3. TemplateName=HANDLE
  4. IndLevel=0
  5. Direction=IN
  6. PreCall=
  7. // sign extend handles @NL
  8. @ArgName = LongToPtr (@ArgHostName); @NL
  9. End=
  10. TemplateName=HANDLE
  11. IndLevel=0
  12. Direction=IN OUT
  13. PreCall=
  14. // sign extend handles @NL
  15. @ArgName = LongToPtr (@ArgHostName); @NL
  16. End=
  17. TemplateName=HWND
  18. IndLevel=0
  19. Direction=IN
  20. PreCall=
  21. // sign extend hwnds @NL
  22. @ArgName = LongToPtr (@ArgHostName); @NL
  23. End=
  24. TemplateName=HWND
  25. IndLevel=0
  26. Direction=IN OUT
  27. PreCall=
  28. // sign extend hwnds @NL
  29. @ArgName = LongToPtr (@ArgHostName); @NL
  30. End=
  31. TemplateName=HDC
  32. IndLevel=0
  33. Direction=IN
  34. PreCall=
  35. // sign extend hdc @NL
  36. @ArgName = LongToPtr (@ArgHostName); @NL
  37. End=
  38. TemplateName=NATIVE_PVOID
  39. IndLevel=0
  40. Direction=IN
  41. PreCall=
  42. // Do nothing
  43. @ArgName = @ArgHostName; @NL
  44. End=
  45. TemplateName=SIZE_T
  46. IndLevel=0
  47. Direction=IN
  48. Locals=
  49. // @ArgName(@ArgType) is an IN SIZE_T(Special Type) - Nothing to do @NL
  50. End=
  51. PreCall=
  52. // @ArgName(@ArgType) is an IN SIZE_T(Special Type) @NL
  53. @ArgName = Wow64ThunkSIZE_T32TO64(@ArgHostName); @NL
  54. End=
  55. PostCall=
  56. // @ArgName(@ArgType) is an IN SIZE_T(Special Type) - Nothing to do @NL
  57. End=
  58. TemplateName=SIZE_T
  59. IndLevel=0
  60. Direction=OUT
  61. Locals=
  62. // @ArgName(@ArgType) is an OUT SIZE_T(Special Type) - Nothing to do @NL
  63. End=
  64. PreCall=
  65. // @ArgName(@ArgType) is an OUT SIZE_T(Special Type) @NL
  66. @ArgName = Wow64ThunkSIZE_T32TO64(@ArgHostName); @NL
  67. End=
  68. PostCall=
  69. // @ArgName(@ArgType) is an OUT SIZE_T(Special Type) @NL
  70. @ArgHostName = Wow64ThunkSIZE_T64TO32(@ArgName); @NL
  71. End=
  72. TemplateName=SIZE_T
  73. IndLevel=0
  74. Direction=IN OUT
  75. Locals=
  76. // @ArgName(@ArgType) is an IN OUT SIZE_T(Special Type) - Nothing to do @NL
  77. End=
  78. PreCall=
  79. // @ArgName(@ArgType) is an IN OUT SIZE_T(Special Type) @NL
  80. @ArgName = Wow64ThunkSIZE_T32TO64(@ArgHostName); @NL
  81. End=
  82. PostCall=
  83. // @ArgName(@ArgType) is an IN OUT SIZE_T(Special Type) @NL
  84. @ArgHostName = Wow64ThunkSIZE_T64TO32(@ArgName); @NL
  85. End=
  86. TemplateName=PSIZE_T
  87. IndLevel=0
  88. Direction=IN
  89. Locals=
  90. // @ArgName(@ArgType) is an IN PSIZE_T(Special Type) @NL
  91. SIZE_T @ArgVal_Copy; @NL
  92. End=
  93. PreCall=
  94. // @ArgName(@ArgType) is an IN PSIZE_T(Special Type) @NL
  95. @ArgName = Wow64ShallowThunkSIZE_T32TO64(&@ArgVal_Copy, (NT32SIZE_T*)@ArgHostName); @NL
  96. End=
  97. PostCall=
  98. // @ArgName(@ArgType) is an IN PSIZE_T(Special Type) - Nothing to do @NL
  99. End=
  100. TemplateName=PSIZE_T
  101. IndLevel=0
  102. Direction=OUT
  103. Locals=
  104. // @ArgName(@ArgType) is an OUT PSIZE_T(Special Type) @NL
  105. SIZE_T @ArgVal_Copy; @NL
  106. End=
  107. PreCall=
  108. @ArgName = Wow64ShallowThunkSIZE_T32TO64(&@ArgVal_Copy, (NT32SIZE_T*)@ArgHostName); @NL
  109. End=
  110. PostCall=
  111. // @ArgName(@ArgType) is an OUT PSIZE_T(Special Type) @NL
  112. @ArgHostName = (NT32PSIZE_T)Wow64ShallowThunkSIZE_T64TO32((NT32SIZE_T*)@ArgHostName,@ArgName); @NL
  113. End=
  114. TemplateName=PSIZE_T
  115. IndLevel=0
  116. Direction=IN OUT
  117. Locals=
  118. // @ArgName(@ArgType) is an IN OUT PSIZE_T(Special Type) @NL
  119. SIZE_T @ArgVal_Copy; @NL
  120. End=
  121. PreCall=
  122. // @ArgName(@ArgType) is an IN OUT PSIZE_T(Special Type) @NL
  123. @ArgName = Wow64ShallowThunkSIZE_T32TO64(&@ArgVal_Copy,(NT32SIZE_T*)@ArgHostName); @NL
  124. End=
  125. PostCall=
  126. // @ArgName(@ArgType) is an OUT PSIZE_T(Special Type) @NL
  127. @ArgHostName = (NT32PSIZE_T)Wow64ShallowThunkSIZE_T64TO32((NT32SIZE_T*)@ArgHostName,@ArgName); @NL
  128. End=
  129. TemplateName=SIZE_T
  130. IndLevel=1
  131. Direction=IN
  132. Locals=
  133. // @ArgName(@ArgType) is an IN SIZE_T*(Special Type) @NL
  134. SIZE_T @ArgVal_Copy; @NL
  135. End=
  136. PreCall=
  137. // @ArgName(@ArgType) is an IN SIZE_T*(Special Type) @NL
  138. @ArgName = Wow64ShallowThunkSIZE_T32TO64(&@ArgVal_Copy, (NT32SIZE_T*)@ArgHostName); @NL
  139. End=
  140. PostCall=
  141. // @ArgName(@ArgType) is an IN SIZE_T*(Special Type) - Nothing to do @NL
  142. End=
  143. TemplateName=SIZE_T
  144. IndLevel=1
  145. Direction=OUT
  146. Locals=
  147. // @ArgName(@ArgType) is an OUT SIZE_T*(Special Type) @NL
  148. SIZE_T @ArgVal_Copy; @NL
  149. End=
  150. PreCall=
  151. @ArgName = Wow64ShallowThunkSIZE_T32TO64(&@ArgVal_Copy,(NT32SIZE_T*)@ArgHostName); @NL
  152. End=
  153. PostCall=
  154. // @ArgName(@ArgType) is an OUT SIZE_T*(Special Type) @NL
  155. @ArgHostName = (NT32PSIZE_T)Wow64ShallowThunkSIZE_T64TO32((NT32SIZE_T*)@ArgHostName,@ArgName); @NL
  156. End=
  157. TemplateName=SIZE_T
  158. IndLevel=1
  159. Direction=IN OUT
  160. Locals=
  161. // @ArgName(@ArgType) is an IN OUT SIZE_T*(Special Type) @NL
  162. SIZE_T @ArgVal_Copy; @NL
  163. End=
  164. PreCall=
  165. // @ArgName(@ArgType) is an IN OUT SIZE_T*(Special Type) @NL
  166. @ArgName = Wow64ShallowThunkSIZE_T32TO64(&@ArgVal_Copy,(NT32SIZE_T*)@ArgHostName); @NL
  167. End=
  168. PostCall=
  169. // @ArgName(@ArgType) is an OUT SIZE_T*(Special Type) @NL
  170. @ArgHostName = (NT32PSIZE_T)Wow64ShallowThunkSIZE_T64TO32((NT32SIZE_T*)@ArgHostName,@ArgName); @NL
  171. End=
  172. TemplateName=UNICODE_STRING
  173. IndLevel=0
  174. Direction=IN
  175. Locals=
  176. // @ArgName(@ArgType) is an IN UNICODE_STRING(Special Type) @NL
  177. End=
  178. PreCall=
  179. Wow64ShallowThunkUnicodeString32TO64(&(@ArgName), &(@ArgHostName)); @NL
  180. End=
  181. PostCall=
  182. // @ArgName(@ArgType) is an IN UNICODE_STRING(Special Type) @NL
  183. End=
  184. TemplateName=UNICODE_STRING
  185. IndLevel=0
  186. Direction=IN OUT
  187. Locals=
  188. // @ArgName(@ArgType) is an IN OUT UNICODE_STRING(Special Type) @NL
  189. End=
  190. PreCall=
  191. Wow64ShallowThunkUnicodeString32TO64(&(@ArgName), &(@ArgHostName)); @NL
  192. End=
  193. PostCall=
  194. Wow64ShallowThunkUnicodeString64TO32(&(@ArgHostName), &(@ArgName)); @NL
  195. End=
  196. TemplateName=UNICODE_STRING
  197. IndLevel=0
  198. Direction=OUT
  199. Locals=
  200. // @ArgName(@ArgType) is an OUT UNICODE_STRING(Special Type) @NL
  201. End=
  202. PreCall=
  203. // @ArgName(@ArgType) is an OUT UNICODE_STRING(Special Type) @NL
  204. Wow64ShallowThunkUnicodeString32TO64(&(@ArgName), &(@ArgHostName)); @NL
  205. End=
  206. PostCall=
  207. // @ArgName(@ArgType) is an OUT UNICODE_STRING(Special Type) @NL
  208. Wow64ShallowThunkUnicodeString64TO32(&(@ArgHostName), &(@ArgName)); @NL
  209. End=
  210. TemplateName=PSECURITY_DESCRIPTOR
  211. IndLevel=0
  212. Direction=IN
  213. Locals=
  214. // @ArgName(@ArgType) is an IN PSECURITY_DECRIPTOR(Special Type) @NL
  215. End=
  216. PreCall=
  217. // Note: @ArgName(@ArgType) is a IN PSECURITY_DESCRIPTOR @NL
  218. @ArgName = Wow64ShallowThunkAllocSecurityDescriptor32TO64(@ArgHostName); @NL
  219. End=
  220. PostCall=
  221. // @ArgName(@ArgType) is an IN PSECURITY_DECRIPTOR(Special Type) @NL
  222. End=
  223. TemplateName=SECURITY_DESCRIPTOR
  224. IndLevel=1
  225. Direction=IN
  226. Locals=
  227. // @ArgName(@ArgType) is an IN SECURITY_DESCRIPTOR *(Special Type) @NL
  228. End=
  229. PreCall=
  230. // Note: @ArgName(@ArgType) is a SECURITY_DESCRIPTOR * @NL
  231. @ArgName = (@ArgType)Wow64ShallowThunkAllocSecurityDescriptor32TO64(@ArgHostName); @NL
  232. End=
  233. PostCall=
  234. // @ArgName(@ArgType) is an IN PSECURITY_DECRIPTOR(Special Type) @NL
  235. End=
  236. TemplateName=PSECURITY_TOKEN_PROXY_DATA
  237. IndLevel=0
  238. Direction=IN
  239. Locals=
  240. // @ArgName(@ArgType) is an IN PSECURITY_TOKEN_PROXY_DATA(Special Type) @NL
  241. End=
  242. PreCall=
  243. // Note @ArgName(@ArgType) is a IN PSECURITY_TOKEN_PROXY_DATA @NL
  244. @ArgName = Wow64ShallowThunkAllocSecurityTokenProxyData32TO64(@ArgHostName); @NL
  245. End=
  246. PostCall=
  247. // @ArgName(@ArgType) is an IN PSECURITY_TOKEN_PROXY_DATA(Special Type) @NL
  248. End=
  249. TemplateName=PSECURITY_QUALITY_OF_SERVICE
  250. IndLevel=0
  251. Direction=IN
  252. Locals=
  253. NTSTATUS @ArgNameRetVal;
  254. // @ArgName(@ArgType) is an IN PSECURITY_QUALITY_OF_SERVICE(Special Type) @NL
  255. End=
  256. PreCall=
  257. // Note @ArgName(@ArgType) is an IN PSECURITY_QUALITY_OF_SERVICE @NL
  258. @ArgNameRetVal = Wow64ShallowThunkAllocSecurityQualityOfService32TO64(@ArgHostName, &@ArgName); @NL
  259. if (!NT_SUCCESS (@ArgNameRetVal)) { @NL
  260. #if defined _NTBASE_API_ @NL
  261. return @ArgNameRetVal; @NL
  262. #elif defined _WIN32_API_ @NL
  263. RtlRaiseStatus (@ArgNameRetVal); @NL
  264. #endif @NL @NL
  265. } @NL
  266. End=
  267. PostCall=
  268. // @ArgName(@ArgType) is an IN PSECURITY_QUALITY_OF_SERVICE(Special Type) @NL
  269. End=
  270. TemplateName=SECURITY_QUALITY_OF_SERVICE
  271. IndLevel=1
  272. Direction=IN
  273. Locals=
  274. NTSTATUS @ArgNameRetVal;
  275. // @ArgName(@ArgType) is an IN SECURITY_QUALITY_OF_SERVICE * (Special Type) @NL
  276. End=
  277. PreCall=
  278. // Note @ArgName(@ArgType) is an IN SECURITY_QUALITY_OF_SERVICE * @NL
  279. @ArgNameRetVal = Wow64ShallowThunkAllocSecurityQualityOfService32TO64(@ArgHostName, &@ArgName); @NL
  280. if (!NT_SUCCESS (@ArgNameRetVal)) { @NL
  281. #if defined _NTBASE_API_ @NL
  282. return @ArgNameRetVal; @NL
  283. #elif defined _WIN32_API_ @NL
  284. RtlRaiseStatus (@ArgNameRetVal); @NL
  285. #endif @NL @NL
  286. } @NL
  287. End=
  288. PostCall=
  289. // @ArgName(@ArgType) is an IN SECURITY_QUALITY_OF_SERVICE * (Special Type) @NL
  290. End=
  291. TemplateName=POBJECT_ATTRIBUTES
  292. IndLevel=0
  293. Direction=IN
  294. Locals=
  295. NTSTATUS @ArgNameRetVal;
  296. // @ArgName(@ArgType) is an IN POBJECT_ATTRIBUTES (Special Type) @NL
  297. End=
  298. PreCall=
  299. // Note: @ArgName(@ArgType) is an IN POBJECT_ATTRIBUTES @NL
  300. @ArgNameRetVal = Wow64ShallowThunkAllocObjectAttributes32TO64(@ArgHostName, &@ArgName); @NL
  301. if (!NT_SUCCESS (@ArgNameRetVal)) { @NL
  302. #if defined _NTBASE_API_ @NL
  303. return @ArgNameRetVal; @NL
  304. #elif defined _WIN32_API_ @NL
  305. RtlRaiseStatus (@ArgNameRetVal); @NL
  306. #endif @NL @NL
  307. } @NL
  308. End=
  309. PostCall=
  310. // @ArgName(@ArgType) is an IN POBJECT_ATTRIBUTES (Special Type) @NL
  311. End=
  312. TemplateName=struct
  313. IndLevel=0
  314. Direction=IN
  315. Locals=
  316. // @NL
  317. // Note: @ArgName(@ArgType) is a IN struct @NL
  318. @StructLocal
  319. @NL
  320. End=
  321. PreCall=
  322. // @NL
  323. // Note: @ArgName(@ArgType) is a IN struct @NL
  324. @StructIN
  325. @NL
  326. End=
  327. PostCall=
  328. // @NL
  329. // Note: @ArgName(@ArgType) is a IN struct - Nothing to do. @NL
  330. @NL
  331. End=
  332. TemplateName=struct
  333. IndLevel=0
  334. Direction=OUT
  335. Locals=
  336. // @NL
  337. // Note: @ArgName(@ArgType) is a OUT struct @NL
  338. @StructLocal
  339. @NL
  340. End=
  341. PreCall=
  342. // @NL
  343. // Note: @ArgName(@ArgType) is a OUT struct @NL
  344. @StructIN
  345. @NL
  346. End=
  347. PostCall=
  348. // @NL
  349. // Note: @ArgName(@ArgType) is a OUT struct @NL
  350. @StructOUT
  351. @NL
  352. End=
  353. TemplateName=struct
  354. IndLevel=0
  355. Direction=IN OUT
  356. Locals=
  357. // @NL
  358. // Note: @ArgName(@ArgType) is a IN OUT struct @NL
  359. @StructLocal
  360. @NL
  361. End=
  362. PreCall=
  363. // @NL
  364. // Note: @ArgName(@ArgType) is a IN OUT struct @NL
  365. @StructIN
  366. @NL
  367. End=
  368. PostCall=
  369. // @NL
  370. // Note: @ArgName(@ArgType) is a IN OUT struct @NL
  371. @StructOUT
  372. @NL
  373. End=
  374. TemplateName=struct
  375. IndLevel=0
  376. Direction=none
  377. Locals=
  378. // @NL
  379. // Warning: @ArgName(@ArgType) is a struct with no direction. Thunking as IN OUT @NL
  380. @StructLocal
  381. @NL
  382. End=
  383. PreCall=
  384. // @NL
  385. // Warning: @ArgName(@ArgType) is a struct with no direction. Thunking as IN OUT @NL
  386. @StructIN
  387. @NL
  388. End=
  389. PostCall=
  390. // @NL
  391. // Warning: @ArgName(@ArgType) is a struct with no direction. Thunking as IN OUT @NL
  392. @StructOUT
  393. @NL
  394. End=
  395. TemplateName=struct
  396. IndLevel=1
  397. Direction=IN
  398. Locals=
  399. // Note: @ArgName(@ArgType) is an IN struct pointer. @NL
  400. @TypeStructPtrINLocal
  401. @NL
  402. End=
  403. AllocSize=
  404. // Note: @ArgName(@ArgType) is an IN struct pointer. @NL
  405. @GenericPtrAllocSize
  406. End=
  407. PreCall=
  408. // Note: @ArgName(@ArgType) is an IN struct pointer. @NL
  409. @TypeStructPtrINPreCall
  410. @NL
  411. End=
  412. PostCall=
  413. // Note: @ArgName(@ArgType) is an IN struct pointer - Nothing to do. @NL
  414. End=
  415. TemplateName=struct
  416. IndLevel=1
  417. Direction=OUT
  418. Locals=
  419. // Note: @ArgName(@ArgType) is an OUT struct pointer. @NL
  420. @TypeStructPtrINOUTLocal
  421. @NL
  422. End=
  423. AllocSize=
  424. // Note: @ArgName(@ArgType) is an OUT struct pointer. @NL
  425. @GenericPtrAllocSize
  426. End=
  427. RetSize=
  428. // Note: @ArgName(@ArgType) is an OUT struct pointer. @NL
  429. RetInfoLen += sizeof(@ArgHostTypeInd); @NL
  430. End=
  431. PreCall=
  432. // Note: @ArgName(@ArgType) is an OUT struct pointer. @NL
  433. @TypeStructPtrINOUTPreCall
  434. @NL
  435. End=
  436. PostCall=
  437. // Note: @ArgName(@ArgType) is an OUT struct pointer. @NL
  438. @TypeStructPtrINOUTPostCall
  439. @NL
  440. End=
  441. TemplateName=struct
  442. IndLevel=1
  443. Direction=IN OUT
  444. Locals=
  445. // Note: @ArgName(@ArgType) is an OUT IN struct pointer. @NL
  446. @TypeStructPtrINOUTLocal
  447. @NL
  448. End=
  449. PreCall=
  450. // Note: @ArgName(@ArgType) is an OUT IN struct pointer. @NL
  451. @TypeStructPtrINOUTPreCall
  452. @NL
  453. End=
  454. PostCall=
  455. // Note: @ArgName(@ArgType) is an OUT IN struct pointer. @NL
  456. @TypeStructPtrINOUTPostCall
  457. @NL
  458. End=
  459. TemplateName=struct
  460. IndLevel=1
  461. Direction=none
  462. Locals=
  463. // Note: @ArgName(@ArgType) is a directionless struct pointer. (Thunking as IN OUT) @NL
  464. @TypeStructPtrNONELocal
  465. @NL
  466. End=
  467. PreCall=
  468. // Note: @ArgName(@ArgType) is a directionless struct pointer. (Thunking as IN OUT) @NL
  469. @TypeStructPtrNONEPreCall
  470. @NL
  471. End=
  472. PostCall=
  473. // Note: @ArgName(@ArgType) is a directionless struct pointer. (Thunking as IN OUT) @NL
  474. @TypeStructPtrNONEPostCall
  475. @NL
  476. End=
  477. TemplateName=*
  478. IndLevel=0
  479. Direction=IN
  480. Locals=
  481. // @NL
  482. // Note: @ArgName(@ArgType) is an IN pointer. @NL
  483. @PointerLocal
  484. @NL
  485. End=
  486. AllocSize=
  487. // Note: @ArgName(@ArgType) is an IN pointer.@NL
  488. @GenericPtrAllocSize
  489. End=
  490. PreCall=
  491. // @NL
  492. // Note: @ArgName(@ArgType) is an IN pointer. @NL
  493. @PointerIN
  494. @NL
  495. End=
  496. PostCall=
  497. // @NL
  498. // Note: @ArgName(@ArgType) is an IN pointer - Nothing to do. @NL
  499. End=
  500. TemplateName=*
  501. IndLevel=0
  502. Direction=OUT
  503. Locals=
  504. // @NL
  505. // Note: @ArgName(@ArgType) is a OUT pointer. @NL
  506. @PointerLocal
  507. End=
  508. AllocSize=
  509. // Note: @ArgName(@ArgType) is an OUT pointer.@NL
  510. @GenericPtrAllocSize
  511. End=
  512. RetSize=
  513. // Note: @ArgName(@ArgType) is an out pointer. @NL
  514. RetInfoLen += sizeof(@ArgHostTypeInd); @NL
  515. End=
  516. PreCall=
  517. // @NL
  518. // Note: @ArgName(@ArgType) is a OUT pointer. @NL
  519. @PointerIN
  520. @NL
  521. End=
  522. PostCall=
  523. // @NL
  524. // Note: @ArgName(@ArgType) is a OUT pointer. @NL
  525. @NL
  526. @PointerOUT
  527. End=
  528. TemplateName=*
  529. IndLevel=0
  530. Direction=IN OUT
  531. Locals=
  532. // @NL
  533. // Note: @ArgName(@ArgType) is a IN OUT pointer. @NL
  534. @NL
  535. @PointerLocal
  536. End=
  537. PreCall=
  538. // @NL
  539. // Note: @ArgName(@ArgType) is a IN OUT pointer. @NL
  540. @PointerIN
  541. @NL
  542. End=
  543. PostCall=
  544. // @NL
  545. // Note: @ArgName(@ArgType) is a IN OUT pointer. @NL
  546. @PointerOUT
  547. @NL
  548. End=
  549. TemplateName=*
  550. IndLevel=0
  551. Direction=none
  552. Locals=
  553. // @NL
  554. // Warning: @ArgName(@ArgType) is a pointer with no direction. Thunking as IN OUT. @NL
  555. @PointerLocal
  556. @NL
  557. End=
  558. PreCall=
  559. // @NL
  560. // Warning: @ArgName(@ArgType) is a pointer with no direction. Thunking as IN OUT. @NL
  561. @PointerIN
  562. @NL
  563. End=
  564. PostCall=
  565. // @NL
  566. // Warning: @ArgName(@ArgType) is a pointer with no direction. Thunking as IN OUT. @NL
  567. @PointerOUT
  568. @NL
  569. End=
  570. TemplateName=union
  571. IndLevel=0
  572. Locals=
  573. End=
  574. PreCall=
  575. @IfPtrDep(
  576. //FIX LARGE_INTEGER Alignment problem fall into union12@NL
  577. WOWASSERT((sizeof (@ArgName) == sizeof (@ArgHostName)) && (sizeof (@ArgName) == sizeof (LARGE_INTEGER)));@NL
  578. *(LARGE_INTEGER *)&@ArgName = *(UNALIGNED LARGE_INTEGER *)&@ArgHostName;
  579. )
  580. @IfNotPtrDep(
  581. @IfIsArray(
  582. // Note: @ArgName(@ArgType) is an array of pointer dependent unions. @NL
  583. RtlCopyMemory(@ArgName, @ArgHostName, sizeof(*@ArgName) * @ArrayElements); @NL
  584. )
  585. @IfNotIsArray(
  586. // Note: @ArgName(@ArgType) is a pointer to a union that is not pointer dependent. @NL
  587. RtlCopyMemory(&(@ArgName), &(@ArgHostName), sizeof(@ArgName)); @NL
  588. )
  589. )
  590. End=
  591. PostCall=
  592. @IfIsMember(
  593. @IfNotPtrDep(
  594. @IfIsArray(
  595. // Note: @ArgName(@ArgType) is an array of pointer dependent unions. @NL
  596. RtlCopyMemory(@ArgHostName, @ArgName, sizeof(*@ArgName) * @ArrayElements); @NL
  597. )
  598. @IfNotIsArray(
  599. // Note: @ArgName(@ArgType) is a pointer to a union that is not pointer dependent. @NL
  600. RtlCopyMemory(&(@ArgHostName), &(@ArgName), sizeof(@ArgName)); @NL
  601. )
  602. )
  603. @IfPtrDep(
  604. WOWASSERT((sizeof (@ArgName) == sizeof (@ArgHostName)) && (sizeof (@ArgName) == sizeof (LARGE_INTEGER)));@NL
  605. *(UNALIGNED LARGE_INTEGER *)&@ArgHostName = *(LARGE_INTEGER *)&@ArgName;
  606. )
  607. )
  608. End=
  609. TemplateName=union
  610. IndLevel=1
  611. Locals=
  612. End=
  613. PreCall=
  614. @IfPtrDep(
  615. //FIX LARGE_INTEGER Alignment problem ()@NL
  616. WOWASSERT((sizeof (@ArgName) == sizeof (@ArgHostName)) && (sizeof (@ArgName) == sizeof (LARGE_INTEGER)));@NL
  617. *(LARGE_INTEGER *)&@ArgName = *(UNALIGNED LARGE_INTEGER *)&@ArgHostName;
  618. )
  619. @IfNotPtrDep(
  620. @IfIsArray(
  621. // Note: @ArgName(@ArgType) is an array of pointer dependent unions. @NL
  622. RtlCopyMemory(@ArgName, @ArgHostName, sizeof(*@ArgName) * @ArrayElements); @NL
  623. )
  624. @IfNotIsArray(
  625. // Note: @ArgName(@ArgType) is a pointer to a union that is not pointer dependent. @NL
  626. RtlCopyMemory(@ArgName, @ArgHostName, sizeof(*@ArgName)); @NL
  627. )
  628. )
  629. End=
  630. PostCall=
  631. @IfIsMember(
  632. @IfNotPtrDep(
  633. @IfIsArray(
  634. // Note: @ArgName(@ArgType) is an array of pointer dependent unions. @NL
  635. RtlCopyMemory(@ArgHostName, @ArgName, sizeof(*@ArgName) * @ArrayElements); @NL
  636. )
  637. @IfNotIsArray(
  638. // Note: @ArgName(@ArgType) is a pointer to a union that is not pointer dependent. @NL
  639. RtlCopyMemory(@ArgHostName, @ArgName, sizeof(*@ArgName)); @NL @NL
  640. )
  641. )
  642. @IfPtrDep(
  643. WOWASSERT((sizeof (@ArgName) == sizeof (@ArgHostName)) && (sizeof (@ArgName) == sizeof (LARGE_INTEGER)));@NL
  644. *(UNALIGNED LARGE_INTEGER *)&@ArgHostName = *(LARGE_INTEGER *)&@ArgName;
  645. )
  646. )
  647. End=
  648. TemplateName=default
  649. Locals=
  650. @IfPtrDep(
  651. @IfIsArray(
  652. // Note: @ArgName(@ArgType) is an array of a pointer dependent type. @NL
  653. @DeclareIndex
  654. )
  655. @IfNotIsArray(
  656. // Note: @ArgName(@ArgType) is a pointer dependent type. @NL
  657. )
  658. )
  659. @IfNotPtrDep(
  660. // Note: @ArgName(@ArgType) is not a pointer dependent type - Nothing to do. @NL
  661. )
  662. End=
  663. PreCall=
  664. @IfNotIsArray(
  665. // Note: @ArgName(@ArgType) is nothing special. @NL
  666. @StdH2NCopyOrg
  667. )
  668. @IfIsArray(
  669. @IfPtrDep(
  670. // Note: @ArgName(@ArgType) is an array of a pointer dependent type. @NL
  671. @ElementCopy(@StdAEH2NCopy)
  672. )
  673. @IfNotPtrDep(
  674. // Note: @ArgName(@ArgType) is an array of a non pointer dependent type. @NL
  675. RtlCopyMemory(@ArgName, @ArgHostName, sizeof(@ArgType) * @ArrayElements); @NL
  676. )
  677. )
  678. End=
  679. PostCall=
  680. @IfNotIsMember(
  681. // Note: @ArgName(@ArgType) is not a member of a structure - Nothing to do. @NL
  682. )
  683. @IfIsMember(
  684. @IfNotIsArray(
  685. @StdN2HCopy
  686. )
  687. @IfIsArray(
  688. @IfPtrDep(
  689. // Note: @ArgName(@ArgType) is an array of a pointer dependent type. @NL
  690. @ElementCopy(@StdAEN2HCopy)
  691. )
  692. @IfNotPtrDep(
  693. // Note: @ArgName(@ArgType) is an array of a non pointer dependent type. @NL
  694. RtlCopyMemory(@ArgHostName, @ArgName, sizeof(@ArgType) * @ArrayElements); @NL
  695. )
  696. )
  697. )
  698. End=
  699. TemplateName=PLARGE_INTEGER
  700. IndLevel=0
  701. Direction=IN
  702. Locals=
  703. // @ArgName(@ArgType) is an PLARGE_INTEGER(might be unaligned) @NL
  704. LARGE_INTEGER @ArgVal_Copy; @NL
  705. End=
  706. PreCall=
  707. //FIXUP_LARGE_INTEGER @NL
  708. if ((SIZE_T)@ArgHostName & 0x07 ) {
  709. @ArgName = &@ArgVal_Copy;
  710. try {
  711. @ArgVal_Copy = *(UNALIGNED LARGE_INTEGER *)@ArgHostName;
  712. } except (EXCEPTION_EXECUTE_HANDLER) {
  713. return GetExceptionCode ();
  714. }
  715. } else @ArgName = @ArgHostName;
  716. End=
  717. PostCall=
  718. // nothing to here
  719. End=
  720. TemplateName=LARGE_INTEGER
  721. IndLevel=1
  722. Direction=IN
  723. Locals=
  724. // @ArgName(@ArgType) is an LARGE_INTEGER *(might be unaligned) @NL
  725. LARGE_INTEGER @ArgVal_Copy; @NL
  726. End=
  727. PreCall=
  728. //FIXUP_LARGE_INTEGER @NL
  729. if ((SIZE_T)@ArgHostName & 0x07 ) {
  730. @ArgName = &@ArgVal_Copy;
  731. try {
  732. @ArgVal_Copy = *(UNALIGNED LARGE_INTEGER *)@ArgHostName;
  733. } except (EXCEPTION_EXECUTE_HANDLER) {
  734. return GetExceptionCode ();
  735. }
  736. } else @ArgName = @ArgHostName;
  737. End=
  738. PostCall=
  739. // nothing to here
  740. End=
  741. TemplateName=PLARGE_INTEGER
  742. IndLevel=0
  743. Direction=IN OUT
  744. Locals=
  745. // @ArgName(@ArgType) is an PLARGE_INTEGER(might be unaligned) @NL
  746. LARGE_INTEGER @ArgVal_Copy; @NL
  747. End=
  748. PreCall=
  749. //FIXUP_LARGE_INTEGER @NL
  750. if ((SIZE_T)@ArgHostName & 0x07 ) {
  751. @ArgName = &@ArgVal_Copy;
  752. try {
  753. @ArgVal_Copy = *(UNALIGNED LARGE_INTEGER *)@ArgHostName;
  754. } except (EXCEPTION_EXECUTE_HANDLER) {
  755. return GetExceptionCode ();
  756. }
  757. } else @ArgName = @ArgHostName;
  758. End=
  759. PostCall=
  760. if (@ArgName != @ArgHostName)
  761. *(UNALIGNED LARGE_INTEGER *)@ArgHostName = @ArgVal_Copy;
  762. End=
  763. TemplateName=LARGE_INTEGER
  764. IndLevel=0
  765. Direction=IN OUT
  766. Locals=
  767. // @ArgName(@ArgType) is an LARGE_INTEGER *(might be unaligned) @NL
  768. LARGE_INTEGER @ArgVal_Copy; @NL
  769. End=
  770. PreCall=
  771. //FIXUP_LARGE_INTEGER @NL
  772. if ((SIZE_T)@ArgHostName & 0x07 ) {
  773. @ArgName = &@ArgVal_Copy;
  774. try {
  775. @ArgVal_Copy = *(UNALIGNED LARGE_INTEGER *)@ArgHostName;
  776. } except (EXCEPTION_EXECUTE_HANDLER) {
  777. return GetExceptionCode ();
  778. }
  779. } else @ArgName = @ArgHostName;
  780. End=
  781. PostCall=
  782. if (@ArgName != @ArgHostName)
  783. *(UNALIGNED LARGE_INTEGER *)@ArgHostName = @ArgVal_Copy;
  784. End=