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.

902 lines
15 KiB

  1. #include "pch.h"
  2. #pragma hdrstop
  3. #include "winreg.h"
  4. #include "ntelfapi.h"
  5. #include <wincrypt.h>
  6. #include <winsafer.h>
  7. /*
  8. Elf == Event Log
  9. a notable difference between Elf and the Win32 API is Elf accepts non nul terminated UNICODE_STRINGs.
  10. */
  11. static
  12. NTSTATUS
  13. NTAPI
  14. ElfReportEventW(
  15. IN HANDLE LogHandle,
  16. IN USHORT EventType,
  17. IN USHORT EventCategory OPTIONAL,
  18. IN ULONG EventID,
  19. IN PSID UserSid OPTIONAL,
  20. IN USHORT NumStrings,
  21. IN ULONG DataSize,
  22. IN PUNICODE_STRING* Strings OPTIONAL,
  23. IN PVOID Data OPTIONAL,
  24. IN USHORT Flags,
  25. IN OUT PULONG RecordNumber OPTIONAL,
  26. IN OUT PULONG TimeWritten OPTIONAL
  27. )
  28. {
  29. if (ARGUMENT_PRESENT(RecordNumber))
  30. {
  31. *RecordNumber = 0;
  32. }
  33. if (ARGUMENT_PRESENT(TimeWritten))
  34. {
  35. *TimeWritten = 0;
  36. }
  37. return STATUS_ENTRYPOINT_NOT_FOUND;
  38. }
  39. static
  40. NTSTATUS
  41. NTAPI
  42. ElfRegisterEventSourceW(
  43. IN PUNICODE_STRING UNCServerName,
  44. IN PUNICODE_STRING SourceName,
  45. OUT PHANDLE LogHandle
  46. )
  47. {
  48. if (ARGUMENT_PRESENT(LogHandle))
  49. {
  50. *LogHandle = NULL;
  51. }
  52. return STATUS_ENTRYPOINT_NOT_FOUND;
  53. }
  54. static
  55. NTSTATUS
  56. NTAPI
  57. ElfDeregisterEventSource(
  58. IN HANDLE LogHandle
  59. )
  60. {
  61. return STATUS_ENTRYPOINT_NOT_FOUND;
  62. }
  63. static
  64. LONG
  65. APIENTRY
  66. RegCreateKeyW (
  67. IN HKEY hKey,
  68. IN LPCWSTR lpSubKey,
  69. OUT PHKEY phkResult
  70. )
  71. {
  72. return ERROR_PROC_NOT_FOUND;
  73. }
  74. static
  75. LONG
  76. APIENTRY
  77. RegCreateKeyExW(
  78. IN HKEY hKey,
  79. IN PCWSTR lpSubKey,
  80. IN DWORD Reserved,
  81. IN PWSTR lpClass,
  82. IN DWORD dwOptions,
  83. IN REGSAM samDesired,
  84. IN PSECURITY_ATTRIBUTES lpSecurityAttributes,
  85. OUT PHKEY phkResult,
  86. OUT LPDWORD lpdwDisposition
  87. )
  88. {
  89. if (ARGUMENT_PRESENT(phkResult))
  90. {
  91. *phkResult = INVALID_HANDLE_VALUE;
  92. }
  93. if (ARGUMENT_PRESENT(lpdwDisposition))
  94. {
  95. *lpdwDisposition = 0;
  96. }
  97. return ERROR_PROC_NOT_FOUND;
  98. }
  99. static
  100. LONG
  101. APIENTRY
  102. RegOpenKeyExA (
  103. IN HKEY hKey,
  104. IN LPCSTR lpSubKey,
  105. IN DWORD ulOptions,
  106. IN REGSAM samDesired,
  107. OUT PHKEY phkResult
  108. )
  109. {
  110. return ERROR_PROC_NOT_FOUND;
  111. }
  112. static
  113. LONG
  114. APIENTRY
  115. RegOpenKeyExW(
  116. IN HKEY hKey,
  117. IN PCWSTR lpSubKey,
  118. IN DWORD ulOptions,
  119. IN REGSAM samDesired,
  120. OUT PHKEY phkResult
  121. )
  122. {
  123. if (ARGUMENT_PRESENT(phkResult))
  124. {
  125. *phkResult = INVALID_HANDLE_VALUE;
  126. }
  127. return ERROR_PROC_NOT_FOUND;
  128. }
  129. static
  130. LONG
  131. APIENTRY
  132. RegSetValueExA (
  133. IN HKEY hKey,
  134. IN LPCSTR lpValueName,
  135. IN DWORD Reserved,
  136. IN DWORD dwType,
  137. IN CONST BYTE* lpData,
  138. IN DWORD cbData
  139. )
  140. {
  141. return ERROR_PROC_NOT_FOUND;
  142. }
  143. static
  144. LONG
  145. APIENTRY
  146. RegSetValueExW (
  147. IN HKEY hKey,
  148. IN LPCWSTR lpValueName,
  149. IN DWORD Reserved,
  150. IN DWORD dwType,
  151. IN CONST BYTE* lpData,
  152. IN DWORD cbData
  153. )
  154. {
  155. return ERROR_PROC_NOT_FOUND;
  156. }
  157. static
  158. LONG
  159. APIENTRY
  160. RegQueryValueExA (
  161. IN HKEY hKey,
  162. IN LPCSTR lpValueName,
  163. IN LPDWORD lpReserved,
  164. OUT LPDWORD lpType,
  165. IN OUT LPBYTE lpData,
  166. IN OUT LPDWORD lpcbData
  167. )
  168. {
  169. return ERROR_PROC_NOT_FOUND;
  170. }
  171. static
  172. LONG
  173. APIENTRY
  174. RegQueryValueExW(
  175. IN HKEY hKey,
  176. IN PCWSTR lpValueName,
  177. IN LPDWORD lpReserved,
  178. OUT LPDWORD lpType,
  179. IN OUT LPBYTE lpData,
  180. IN OUT LPDWORD lpcbData
  181. )
  182. {
  183. if (ARGUMENT_PRESENT(lpType))
  184. {
  185. *lpType = 0;
  186. }
  187. if (ARGUMENT_PRESENT(lpcbData))
  188. {
  189. *lpcbData = 0;
  190. }
  191. return ERROR_PROC_NOT_FOUND;
  192. }
  193. static
  194. BOOL
  195. WINAPI
  196. GetUserNameW (
  197. OUT LPWSTR lpBuffer,
  198. IN OUT LPDWORD nSize
  199. )
  200. {
  201. SetLastError(ERROR_PROC_NOT_FOUND);
  202. return FALSE;
  203. }
  204. static
  205. LONG
  206. APIENTRY
  207. RegCloseKey(
  208. IN HKEY hKey
  209. )
  210. {
  211. return ERROR_PROC_NOT_FOUND;
  212. }
  213. static
  214. LONG
  215. APIENTRY
  216. RegDeleteKeyW(
  217. IN HKEY hKey,
  218. IN PCWSTR lpSubKey
  219. )
  220. {
  221. return ERROR_PROC_NOT_FOUND;
  222. }
  223. static
  224. BOOL
  225. WINAPI
  226. QueryServiceStatus(
  227. SC_HANDLE hService,
  228. LPSERVICE_STATUS lpServiceStatus
  229. )
  230. {
  231. SetLastError(ERROR_PROC_NOT_FOUND);
  232. return FALSE;
  233. }
  234. static
  235. LONG
  236. APIENTRY
  237. RegSaveKeyA(
  238. IN HKEY hKey,
  239. IN PCSTR lpFile,
  240. IN LPSECURITY_ATTRIBUTES lpSecurity
  241. )
  242. {
  243. return ERROR_PROC_NOT_FOUND;
  244. }
  245. static
  246. LONG
  247. APIENTRY
  248. RegSaveKeyExW(
  249. IN HKEY hKey,
  250. IN PCWSTR lpFile,
  251. IN LPSECURITY_ATTRIBUTES lpSecurity,
  252. DWORD Flags
  253. )
  254. {
  255. return ERROR_PROC_NOT_FOUND;
  256. }
  257. static
  258. LONG
  259. APIENTRY
  260. RegSaveKeyW(
  261. IN HKEY hKey,
  262. IN PCWSTR lpFile,
  263. IN LPSECURITY_ATTRIBUTES lpSecurity
  264. )
  265. {
  266. return ERROR_PROC_NOT_FOUND;
  267. }
  268. static
  269. LONG
  270. APIENTRY
  271. RegDeleteValueA (
  272. IN HKEY hKey,
  273. IN LPCSTR lpValueName
  274. )
  275. {
  276. return ERROR_PROC_NOT_FOUND;
  277. }
  278. static
  279. LONG
  280. APIENTRY
  281. RegDeleteValueW(
  282. IN HKEY hKey,
  283. IN PCWSTR lpValueName
  284. )
  285. {
  286. return ERROR_PROC_NOT_FOUND;
  287. }
  288. static
  289. LONG
  290. APIENTRY
  291. RegNotifyChangeKeyValue(
  292. IN HKEY hKey,
  293. IN BOOL bWatchSubtree,
  294. IN DWORD dwNotifyFilter,
  295. IN HANDLE hEvent,
  296. IN BOOL fAsynchronus
  297. )
  298. {
  299. return ERROR_PROC_NOT_FOUND;
  300. }
  301. static
  302. LONG
  303. APIENTRY
  304. RegOpenKeyA (
  305. IN HKEY hKey,
  306. IN LPCSTR lpSubKey,
  307. OUT PHKEY phkResult
  308. )
  309. {
  310. return ERROR_PROC_NOT_FOUND;
  311. }
  312. static
  313. LONG
  314. APIENTRY
  315. RegOpenKeyW (
  316. IN HKEY hKey,
  317. IN LPCWSTR lpSubKey,
  318. OUT PHKEY phkResult
  319. )
  320. {
  321. return ERROR_PROC_NOT_FOUND;
  322. }
  323. static
  324. LONG
  325. APIENTRY
  326. RegEnumKeyExW(
  327. IN HKEY hKey,
  328. IN DWORD dwIndex,
  329. OUT LPWSTR lpName,
  330. IN OUT LPDWORD lpcbName,
  331. IN LPDWORD lpReserved,
  332. IN OUT LPWSTR lpClass,
  333. IN OUT LPDWORD lpcbClass,
  334. OUT PFILETIME lpftLastWriteTime
  335. )
  336. {
  337. if (ARGUMENT_PRESENT(lpcbName))
  338. {
  339. *lpcbName = 0;
  340. }
  341. return ERROR_PROC_NOT_FOUND;
  342. }
  343. static
  344. WINADVAPI
  345. LONG
  346. APIENTRY
  347. RegQueryInfoKeyW(
  348. IN HKEY hKey,
  349. OUT LPWSTR lpClass,
  350. IN OUT LPDWORD lpcbClass,
  351. IN LPDWORD lpReserved,
  352. OUT LPDWORD lpcSubKeys,
  353. OUT LPDWORD lpcbMaxSubKeyLen,
  354. OUT LPDWORD lpcbMaxClassLen,
  355. OUT LPDWORD lpcValues,
  356. OUT LPDWORD lpcbMaxValueNameLen,
  357. OUT LPDWORD lpcbMaxValueLen,
  358. OUT LPDWORD lpcbSecurityDescriptor,
  359. OUT PFILETIME lpftLastWriteTime
  360. )
  361. {
  362. return ERROR_PROC_NOT_FOUND;
  363. }
  364. static
  365. LONG
  366. APIENTRY
  367. RegRestoreKeyW(
  368. HKEY hkey,
  369. LPCWSTR lpFile,
  370. DWORD dwFlags
  371. )
  372. {
  373. return ERROR_PROC_NOT_FOUND;
  374. }
  375. static
  376. WINADVAPI
  377. BOOL
  378. WINAPI
  379. DeregisterEventSource(
  380. IN OUT HANDLE hEventLog
  381. )
  382. {
  383. SetLastError(ERROR_PROC_NOT_FOUND);
  384. return FALSE;
  385. }
  386. static
  387. WINADVAPI
  388. HANDLE
  389. WINAPI
  390. RegisterEventSourceW(
  391. IN LPCWSTR lpUNCServerName,
  392. IN LPCWSTR lpSourceName
  393. )
  394. {
  395. SetLastError(ERROR_PROC_NOT_FOUND);
  396. return NULL;
  397. }
  398. static
  399. WINADVAPI
  400. BOOL
  401. WINAPI
  402. ReportEventW(
  403. IN HANDLE hEventLog,
  404. IN WORD wType,
  405. IN WORD wCategory,
  406. IN DWORD dwEventID,
  407. IN PSID lpUserSid,
  408. IN WORD wNumStrings,
  409. IN DWORD dwDataSize,
  410. IN LPCWSTR *lpStrings,
  411. IN LPVOID lpRawData
  412. )
  413. {
  414. SetLastError(ERROR_PROC_NOT_FOUND);
  415. return FALSE;
  416. }
  417. static
  418. BOOL
  419. WINAPI
  420. AdjustTokenPrivileges(
  421. IN HANDLE TokenHandle,
  422. IN BOOL DisableAllPrivileges,
  423. IN PTOKEN_PRIVILEGES NewState,
  424. IN DWORD BufferLength,
  425. OUT PTOKEN_PRIVILEGES PreviousState,
  426. OUT PDWORD ReturnLength
  427. )
  428. {
  429. SetLastError(ERROR_PROC_NOT_FOUND);
  430. return FALSE;
  431. }
  432. static
  433. BOOL
  434. WINAPI
  435. LookupPrivilegeValueA(
  436. IN LPCSTR lpSystemName,
  437. IN LPCSTR lpName,
  438. OUT PLUID lpLuid
  439. )
  440. {
  441. SetLastError(ERROR_PROC_NOT_FOUND);
  442. return FALSE;
  443. }
  444. static
  445. BOOL
  446. WINAPI
  447. LookupPrivilegeValueW(
  448. IN LPCWSTR lpSystemName,
  449. IN LPCWSTR lpName,
  450. OUT PLUID lpLuid
  451. )
  452. {
  453. SetLastError(ERROR_PROC_NOT_FOUND);
  454. return FALSE;
  455. }
  456. static
  457. PVOID
  458. WINAPI
  459. FreeSid(
  460. IN PSID pSid
  461. )
  462. {
  463. SetLastError(ERROR_PROC_NOT_FOUND);
  464. return NULL;
  465. }
  466. static
  467. BOOL
  468. APIENTRY
  469. CheckTokenMembership(
  470. IN HANDLE TokenHandle OPTIONAL,
  471. IN PSID SidToCheck,
  472. OUT PBOOL IsMember
  473. )
  474. {
  475. SetLastError(ERROR_PROC_NOT_FOUND);
  476. return FALSE;
  477. }
  478. static
  479. BOOL
  480. WINAPI
  481. AllocateAndInitializeSid (
  482. IN PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
  483. IN BYTE nSubAuthorityCount,
  484. IN DWORD nSubAuthority0,
  485. IN DWORD nSubAuthority1,
  486. IN DWORD nSubAuthority2,
  487. IN DWORD nSubAuthority3,
  488. IN DWORD nSubAuthority4,
  489. IN DWORD nSubAuthority5,
  490. IN DWORD nSubAuthority6,
  491. IN DWORD nSubAuthority7,
  492. OUT PSID *pSid
  493. )
  494. {
  495. SetLastError(ERROR_PROC_NOT_FOUND);
  496. return FALSE;
  497. }
  498. static
  499. WINADVAPI
  500. BOOL
  501. WINAPI
  502. OpenProcessToken(
  503. IN HANDLE ProcessHandle,
  504. IN DWORD DesiredAccess,
  505. OUT PHANDLE TokenHandle
  506. )
  507. {
  508. SetLastError(ERROR_PROC_NOT_FOUND);
  509. return FALSE;
  510. }
  511. static
  512. WINADVAPI
  513. BOOL
  514. WINAPI
  515. OpenThreadToken(
  516. IN HANDLE ThreadHandle,
  517. IN DWORD DesiredAccess,
  518. IN BOOL OpenAsSelf,
  519. OUT PHANDLE TokenHandle
  520. )
  521. {
  522. SetLastError(ERROR_PROC_NOT_FOUND);
  523. return FALSE;
  524. }
  525. static
  526. WINADVAPI
  527. BOOL
  528. WINAPI
  529. GetTokenInformation(
  530. IN HANDLE TokenHandle,
  531. IN TOKEN_INFORMATION_CLASS TokenInformationClass,
  532. OUT LPVOID TokenInformation,
  533. IN DWORD TokenInformationLength,
  534. OUT PDWORD ReturnLength
  535. )
  536. {
  537. SetLastError(ERROR_PROC_NOT_FOUND);
  538. return FALSE;
  539. }
  540. static
  541. LONG
  542. APIENTRY
  543. RegEnumKeyW (
  544. IN HKEY hKey,
  545. IN DWORD dwIndex,
  546. OUT LPWSTR lpName,
  547. IN DWORD cbName
  548. )
  549. {
  550. return ERROR_PROC_NOT_FOUND;
  551. }
  552. static
  553. WINADVAPI
  554. LONG
  555. APIENTRY
  556. RegEnumValueW (
  557. IN HKEY hKey,
  558. IN DWORD dwIndex,
  559. OUT LPWSTR lpValueName,
  560. IN OUT LPDWORD lpcbValueName,
  561. IN LPDWORD lpReserved,
  562. OUT LPDWORD lpType,
  563. OUT LPBYTE lpData,
  564. IN OUT LPDWORD lpcbData
  565. )
  566. {
  567. return ERROR_PROC_NOT_FOUND;
  568. }
  569. static
  570. WINADVAPI
  571. BOOL
  572. WINAPI
  573. CryptHashData(
  574. HCRYPTHASH hHash,
  575. CONST BYTE *pbData,
  576. DWORD dwDataLen,
  577. DWORD dwFlags
  578. )
  579. {
  580. return FALSE;
  581. }
  582. static
  583. WINADVAPI
  584. BOOL
  585. WINAPI
  586. CryptReleaseContext(
  587. HCRYPTPROV hProv,
  588. DWORD dwFlags
  589. )
  590. {
  591. return FALSE;
  592. }
  593. static
  594. WINADVAPI
  595. BOOL
  596. WINAPI
  597. CryptAcquireContextW(
  598. HCRYPTPROV *phProv,
  599. LPCWSTR szContainer,
  600. LPCWSTR szProvider,
  601. DWORD dwProvType,
  602. DWORD dwFlags
  603. )
  604. {
  605. return FALSE;
  606. }
  607. static
  608. WINADVAPI
  609. BOOL
  610. WINAPI
  611. CryptDestroyHash(
  612. HCRYPTHASH hHash
  613. )
  614. {
  615. return FALSE;
  616. }
  617. static
  618. WINADVAPI
  619. BOOL
  620. WINAPI
  621. CryptDestroyKey(
  622. HCRYPTKEY hKey
  623. )
  624. {
  625. return FALSE;
  626. }
  627. static
  628. WINADVAPI
  629. BOOL
  630. WINAPI
  631. CryptExportKey(
  632. HCRYPTKEY hKey,
  633. HCRYPTKEY hExpKey,
  634. DWORD dwBlobType,
  635. DWORD dwFlags,
  636. BYTE *pbData,
  637. DWORD *pdwDataLen
  638. )
  639. {
  640. return FALSE;
  641. }
  642. static
  643. WINADVAPI
  644. BOOL
  645. WINAPI
  646. CryptGetHashParam(
  647. HCRYPTHASH hHash,
  648. DWORD dwParam,
  649. BYTE *pbData,
  650. DWORD *pdwDataLen,
  651. DWORD dwFlags
  652. )
  653. {
  654. if (ARGUMENT_PRESENT(pdwDataLen))
  655. {
  656. *pdwDataLen = 0;
  657. }
  658. return FALSE;
  659. }
  660. static
  661. WINADVAPI
  662. BOOL
  663. WINAPI
  664. CryptCreateHash(
  665. HCRYPTPROV hProv,
  666. ALG_ID Algid,
  667. HCRYPTKEY hKey,
  668. DWORD dwFlags,
  669. HCRYPTHASH *phHash
  670. )
  671. {
  672. return FALSE;
  673. }
  674. static
  675. WINADVAPI
  676. BOOL WINAPI
  677. SaferGetPolicyInformation (
  678. IN DWORD dwScopeId,
  679. IN SAFER_POLICY_INFO_CLASS CodeAuthzPolicyInfoClass,
  680. IN DWORD InfoBufferSize,
  681. IN OUT PVOID InfoBuffer,
  682. IN OUT PDWORD InfoBufferRetSize,
  683. IN LPVOID lpReserved
  684. )
  685. {
  686. return FALSE;
  687. }
  688. static
  689. WINADVAPI
  690. BOOL WINAPI
  691. SaferSetPolicyInformation (
  692. IN DWORD dwScopeId,
  693. IN SAFER_POLICY_INFO_CLASS CodeAuthzPolicyInfoClass,
  694. IN DWORD InfoBufferSize,
  695. IN PVOID InfoBuffer,
  696. IN LPVOID lpReserved
  697. )
  698. {
  699. return FALSE;
  700. }
  701. static
  702. WINADVAPI
  703. BOOL WINAPI
  704. SaferCreateLevel(
  705. IN DWORD dwScopeId,
  706. IN DWORD dwLevelId,
  707. IN DWORD OpenFlags,
  708. OUT SAFER_LEVEL_HANDLE *pLevelHandle,
  709. IN LPVOID lpReserved)
  710. {
  711. return FALSE;
  712. }
  713. static
  714. WINADVAPI
  715. BOOL WINAPI
  716. SaferCloseLevel(
  717. IN SAFER_LEVEL_HANDLE hLevelHandle)
  718. {
  719. return FALSE;
  720. }
  721. static
  722. WINADVAPI
  723. BOOL WINAPI
  724. SaferIdentifyLevel (
  725. IN DWORD dwNumProperties,
  726. IN PSAFER_CODE_PROPERTIES pCodeProperties,
  727. OUT SAFER_LEVEL_HANDLE *pLevelHandle,
  728. IN LPVOID lpReserved
  729. )
  730. {
  731. return FALSE;
  732. }
  733. static
  734. WINADVAPI
  735. BOOL WINAPI
  736. SaferComputeTokenFromLevel (
  737. IN SAFER_LEVEL_HANDLE LevelHandle,
  738. IN HANDLE InAccessToken OPTIONAL,
  739. OUT PHANDLE OutAccessToken,
  740. IN DWORD dwFlags,
  741. IN LPVOID lpReserved
  742. )
  743. {
  744. return FALSE;
  745. }
  746. static
  747. WINADVAPI
  748. BOOL WINAPI
  749. SaferGetLevelInformation (
  750. IN SAFER_LEVEL_HANDLE LevelHandle,
  751. IN SAFER_OBJECT_INFO_CLASS dwInfoType,
  752. OUT LPVOID lpQueryBuffer OPTIONAL,
  753. IN DWORD dwInBufferSize,
  754. OUT LPDWORD lpdwOutBufferSize
  755. )
  756. {
  757. return FALSE;
  758. }
  759. static
  760. WINADVAPI
  761. BOOL WINAPI
  762. SaferSetLevelInformation (
  763. IN SAFER_LEVEL_HANDLE LevelHandle,
  764. IN SAFER_OBJECT_INFO_CLASS dwInfoType,
  765. IN LPVOID pQueryBuffer,
  766. IN DWORD dwInBufferSize
  767. )
  768. {
  769. return FALSE;
  770. }
  771. //
  772. // !! WARNING !! The entries below must be in alphabetical order, and are CASE SENSITIVE (eg lower case comes last!)
  773. //
  774. DEFINE_PROCNAME_ENTRIES(advapi32)
  775. {
  776. DLPENTRY(AdjustTokenPrivileges)
  777. DLPENTRY(AllocateAndInitializeSid)
  778. DLPENTRY(CheckTokenMembership)
  779. DLPENTRY(CryptAcquireContextW)
  780. DLPENTRY(CryptCreateHash)
  781. DLPENTRY(CryptDestroyHash)
  782. DLPENTRY(CryptDestroyKey)
  783. DLPENTRY(CryptExportKey)
  784. DLPENTRY(CryptGetHashParam)
  785. DLPENTRY(CryptHashData)
  786. DLPENTRY(CryptReleaseContext)
  787. DLPENTRY(DeregisterEventSource)
  788. DLPENTRY(ElfDeregisterEventSource)
  789. DLPENTRY(ElfRegisterEventSourceW)
  790. DLPENTRY(ElfReportEventW)
  791. DLPENTRY(FreeSid)
  792. DLPENTRY(GetTokenInformation)
  793. DLPENTRY(GetUserNameW)
  794. DLPENTRY(LookupPrivilegeValueA)
  795. DLPENTRY(LookupPrivilegeValueW)
  796. DLPENTRY(OpenProcessToken)
  797. DLPENTRY(OpenThreadToken)
  798. DLPENTRY(QueryServiceStatus)
  799. DLPENTRY(RegCloseKey)
  800. DLPENTRY(RegCreateKeyExW)
  801. DLPENTRY(RegCreateKeyW)
  802. DLPENTRY(RegDeleteKeyW)
  803. DLPENTRY(RegDeleteValueW)
  804. DLPENTRY(RegEnumKeyExW)
  805. DLPENTRY(RegEnumKeyW)
  806. DLPENTRY(RegEnumValueW)
  807. DLPENTRY(RegNotifyChangeKeyValue)
  808. DLPENTRY(RegOpenKeyA)
  809. DLPENTRY(RegOpenKeyExA)
  810. DLPENTRY(RegOpenKeyExW)
  811. DLPENTRY(RegOpenKeyW)
  812. DLPENTRY(RegQueryInfoKeyW)
  813. DLPENTRY(RegQueryValueExA)
  814. DLPENTRY(RegQueryValueExW)
  815. DLPENTRY(RegRestoreKeyW)
  816. DLPENTRY(RegSaveKeyA)
  817. DLPENTRY(RegSaveKeyExW)
  818. DLPENTRY(RegSaveKeyW)
  819. DLPENTRY(RegSetValueExA)
  820. DLPENTRY(RegSetValueExW)
  821. DLPENTRY(RegisterEventSourceW)
  822. DLPENTRY(ReportEventW)
  823. DLPENTRY(SaferCloseLevel)
  824. DLPENTRY(SaferComputeTokenFromLevel)
  825. DLPENTRY(SaferCreateLevel)
  826. DLPENTRY(SaferGetLevelInformation)
  827. DLPENTRY(SaferGetPolicyInformation)
  828. DLPENTRY(SaferIdentifyLevel)
  829. DLPENTRY(SaferSetLevelInformation)
  830. DLPENTRY(SaferSetPolicyInformation)};
  831. DEFINE_PROCNAME_MAP(advapi32)