1from . import SimLibrary
2from .. import SIM_PROCEDURES as P
3from ...calling_conventions import SimCCStdcall, SimCCMicrosoftAMD64
4from ...sim_type import SimTypeFunction, SimTypeLong
5
6
7lib = SimLibrary()
8lib.set_library_names('advapi32.dll')
9if 'advapi32' in P:
10    # The above check can be removed when procedures/advapi32 contains at least one SimProcedure
11    lib.add_all_from_dict(P['advapi32'])
12
13lib.set_default_cc('X86', SimCCStdcall)
14lib.set_default_cc('AMD64', SimCCMicrosoftAMD64)
15
16prototypes = {
17    "A_SHAFinal": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
18    "A_SHAInit": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
19    "A_SHAUpdate": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
20    "AbortSystemShutdownA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
21    "AbortSystemShutdownW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
22    "AccessCheck": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
23    "AccessCheckAndAuditAlarmA": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
24    "AccessCheckAndAuditAlarmW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
25    "AccessCheckByType": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
26    "AccessCheckByTypeAndAuditAlarmA": SimTypeFunction((SimTypeLong(),)*16, SimTypeLong()),
27    "AccessCheckByTypeAndAuditAlarmW": SimTypeFunction((SimTypeLong(),)*16, SimTypeLong()),
28    "AccessCheckByTypeResultList": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
29    "AccessCheckByTypeResultListAndAuditAlarmA": SimTypeFunction((SimTypeLong(),)*16, SimTypeLong()),
30    "AccessCheckByTypeResultListAndAuditAlarmByHandleA": SimTypeFunction((SimTypeLong(),)*17, SimTypeLong()),
31    "AccessCheckByTypeResultListAndAuditAlarmByHandleW": SimTypeFunction((SimTypeLong(),)*17, SimTypeLong()),
32    "AccessCheckByTypeResultListAndAuditAlarmW": SimTypeFunction((SimTypeLong(),)*16, SimTypeLong()),
33    "AddAccessAllowedAce": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
34    "AddAccessAllowedAceEx": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
35    "AddAccessAllowedObjectAce": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
36    "AddAccessDeniedAce": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
37    "AddAccessDeniedAceEx": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
38    "AddAccessDeniedObjectAce": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
39    "AddAce": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
40    "AddAuditAccessAce": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
41    "AddAuditAccessAceEx": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
42    "AddAuditAccessObjectAce": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
43    "AddConditionalAce": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
44    "AddMandatoryAce": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
45    "AddUsersToEncryptedFile": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
46    "AddUsersToEncryptedFileEx": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
47    "AdjustTokenGroups": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
48    "AdjustTokenPrivileges": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
49    "AllocateAndInitializeSid": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
50    "AllocateLocallyUniqueId": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
51    "AreAllAccessesGranted": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
52    "AreAnyAccessesGranted": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
53    "AuditComputeEffectivePolicyBySid": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
54    "AuditComputeEffectivePolicyByToken": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
55    "AuditEnumerateCategories": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
56    "AuditEnumeratePerUserPolicy": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
57    "AuditEnumerateSubCategories": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
58    "AuditFree": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
59    "AuditLookupCategoryGuidFromCategoryId": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
60    "AuditLookupCategoryIdFromCategoryGuid": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
61    "AuditLookupCategoryNameA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
62    "AuditLookupCategoryNameW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
63    "AuditLookupSubCategoryNameA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
64    "AuditLookupSubCategoryNameW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
65    "AuditQueryGlobalSaclA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
66    "AuditQueryGlobalSaclW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
67    "AuditQueryPerUserPolicy": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
68    "AuditQuerySecurity": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
69    "AuditQuerySystemPolicy": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
70    "AuditSetGlobalSaclA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
71    "AuditSetGlobalSaclW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
72    "AuditSetPerUserPolicy": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
73    "AuditSetSecurity": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
74    "AuditSetSystemPolicy": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
75    "BackupEventLogA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
76    "BackupEventLogW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
77    "BuildExplicitAccessWithNameA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
78    "BuildExplicitAccessWithNameW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
79    "BuildImpersonateExplicitAccessWithNameA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
80    "BuildImpersonateExplicitAccessWithNameW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
81    "BuildImpersonateTrusteeA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
82    "BuildImpersonateTrusteeW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
83    "BuildSecurityDescriptorA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
84    "BuildSecurityDescriptorW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
85    "BuildTrusteeWithNameA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
86    "BuildTrusteeWithNameW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
87    "BuildTrusteeWithObjectsAndNameA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
88    "BuildTrusteeWithObjectsAndNameW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
89    "BuildTrusteeWithObjectsAndSidA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
90    "BuildTrusteeWithObjectsAndSidW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
91    "BuildTrusteeWithSidA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
92    "BuildTrusteeWithSidW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
93    "CancelOverlappedAccess": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
94    "ChangeServiceConfig2A": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
95    "ChangeServiceConfig2W": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
96    "ChangeServiceConfigA": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
97    "ChangeServiceConfigW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
98    "CheckTokenMembership": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
99    "ClearEventLogA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
100    "ClearEventLogW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
101    "CloseCodeAuthzLevel": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
102    "CloseEncryptedFileRaw": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
103    "CloseEventLog": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
104    "CloseServiceHandle": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
105    "CloseThreadWaitChainSession": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
106    "CloseTrace": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
107    "CommandLineFromMsiDescriptor": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
108    "ComputeAccessTokenFromCodeAuthzLevel": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
109    "ControlService": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
110    "ControlServiceExA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
111    "ControlServiceExW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
112    "ControlTraceA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
113    "ControlTraceW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
114    "ConvertAccessToSecurityDescriptorA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
115    "ConvertAccessToSecurityDescriptorW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
116    "ConvertSDToStringSDRootDomainA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
117    "ConvertSDToStringSDRootDomainW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
118    "ConvertSecurityDescriptorToAccessA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
119    "ConvertSecurityDescriptorToAccessNamedA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
120    "ConvertSecurityDescriptorToAccessNamedW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
121    "ConvertSecurityDescriptorToAccessW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
122    "ConvertSecurityDescriptorToStringSecurityDescriptorA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
123    "ConvertSecurityDescriptorToStringSecurityDescriptorW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
124    "ConvertSidToStringSidA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
125    "ConvertSidToStringSidW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
126    "ConvertStringSDToSDDomainA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
127    "ConvertStringSDToSDDomainW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
128    "ConvertStringSDToSDRootDomainA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
129    "ConvertStringSDToSDRootDomainW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
130    "ConvertStringSecurityDescriptorToSecurityDescriptorA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
131    "ConvertStringSecurityDescriptorToSecurityDescriptorW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
132    "ConvertStringSidToSidA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
133    "ConvertStringSidToSidW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
134    "ConvertToAutoInheritPrivateObjectSecurity": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
135    "CopySid": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
136    "CreateCodeAuthzLevel": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
137    "CreatePrivateObjectSecurity": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
138    "CreatePrivateObjectSecurityEx": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
139    "CreatePrivateObjectSecurityWithMultipleInheritance": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
140    "CreateProcessAsUserA": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
141    "CreateProcessAsUserW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
142    "CreateProcessWithLogonW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
143    "CreateProcessWithTokenW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
144    "CreateRestrictedToken": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
145    "CreateServiceA": SimTypeFunction((SimTypeLong(),)*13, SimTypeLong()),
146    "CreateServiceW": SimTypeFunction((SimTypeLong(),)*13, SimTypeLong()),
147    "CreateTraceInstanceId": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
148    "CreateWellKnownSid": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
149    "CredBackupCredentials": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
150    "CredDeleteA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
151    "CredDeleteW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
152    "CredEncryptAndMarshalBinaryBlob": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
153    "CredEnumerateA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
154    "CredEnumerateW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
155    "CredFindBestCredentialA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
156    "CredFindBestCredentialW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
157    "CredFree": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
158    "CredGetSessionTypes": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
159    "CredGetTargetInfoA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
160    "CredGetTargetInfoW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
161    "CredIsMarshaledCredentialA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
162    "CredIsMarshaledCredentialW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
163    "CredIsProtectedA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
164    "CredIsProtectedW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
165    "CredMarshalCredentialA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
166    "CredMarshalCredentialW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
167    "CredProfileLoaded": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
168    "CredProfileUnloaded": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
169    "CredProtectA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
170    "CredProtectW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
171    "CredReadA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
172    "CredReadByTokenHandle": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
173    "CredReadDomainCredentialsA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
174    "CredReadDomainCredentialsW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
175    "CredReadW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
176    "CredRenameA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
177    "CredRenameW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
178    "CredRestoreCredentials": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
179    "CredUnmarshalCredentialA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
180    "CredUnmarshalCredentialW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
181    "CredUnprotectA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
182    "CredUnprotectW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
183    "CredWriteA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
184    "CredWriteDomainCredentialsA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
185    "CredWriteDomainCredentialsW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
186    "CredWriteW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
187    "CredpConvertCredential": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
188    "CredpConvertOneCredentialSize": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
189    "CredpConvertTargetInfo": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
190    "CredpDecodeCredential": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
191    "CredpEncodeCredential": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
192    "CredpEncodeSecret": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
193    "CryptAcquireContextA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
194    "CryptAcquireContextW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
195    "CryptContextAddRef": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
196    "CryptCreateHash": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
197    "CryptDecrypt": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
198    "CryptDeriveKey": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
199    "CryptDestroyHash": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
200    "CryptDestroyKey": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
201    "CryptDuplicateHash": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
202    "CryptDuplicateKey": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
203    "CryptEncrypt": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
204    "CryptEnumProviderTypesA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
205    "CryptEnumProviderTypesW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
206    "CryptEnumProvidersA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
207    "CryptEnumProvidersW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
208    "CryptExportKey": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
209    "CryptGenKey": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
210    "CryptGenRandom": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
211    "CryptGetDefaultProviderA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
212    "CryptGetDefaultProviderW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
213    "CryptGetHashParam": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
214    "CryptGetKeyParam": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
215    "CryptGetProvParam": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
216    "CryptGetUserKey": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
217    "CryptHashData": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
218    "CryptHashSessionKey": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
219    "CryptImportKey": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
220    "CryptReleaseContext": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
221    "CryptSetHashParam": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
222    "CryptSetKeyParam": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
223    "CryptSetProvParam": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
224    "CryptSetProviderA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
225    "CryptSetProviderExA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
226    "CryptSetProviderExW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
227    "CryptSetProviderW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
228    "CryptSignHashA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
229    "CryptSignHashW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
230    "CryptVerifySignatureA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
231    "CryptVerifySignatureW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
232    "DecryptFileA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
233    "DecryptFileW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
234    "DeleteAce": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
235    "DeleteService": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
236    "DeregisterEventSource": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
237    "DestroyPrivateObjectSecurity": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
238    "DuplicateEncryptionInfoFile": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
239    "DuplicateToken": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
240    "DuplicateTokenEx": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
241    "ElfBackupEventLogFileA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
242    "ElfBackupEventLogFileW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
243    "ElfChangeNotify": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
244    "ElfClearEventLogFileA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
245    "ElfClearEventLogFileW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
246    "ElfCloseEventLog": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
247    "ElfDeregisterEventSource": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
248    "ElfFlushEventLog": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
249    "ElfNumberOfRecords": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
250    "ElfOldestRecord": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
251    "ElfOpenBackupEventLogA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
252    "ElfOpenBackupEventLogW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
253    "ElfOpenEventLogA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
254    "ElfOpenEventLogW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
255    "ElfReadEventLogA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
256    "ElfReadEventLogW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
257    "ElfRegisterEventSourceA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
258    "ElfRegisterEventSourceW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
259    "ElfReportEventA": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
260    "ElfReportEventAndSourceW": SimTypeFunction((SimTypeLong(),)*15, SimTypeLong()),
261    "ElfReportEventW": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
262    "EnableTrace": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
263    "EnableTraceEx": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
264    "EnableTraceEx2": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
265    "EncryptFileA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
266    "EncryptFileW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
267    "EncryptedFileKeyInfo": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
268    "EncryptionDisable": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
269    "EnumDependentServicesA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
270    "EnumDependentServicesW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
271    "EnumServiceGroupW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
272    "EnumServicesStatusA": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
273    "EnumServicesStatusExA": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
274    "EnumServicesStatusExW": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
275    "EnumServicesStatusW": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
276    "EnumerateTraceGuids": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
277    "EnumerateTraceGuidsEx": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
278    "EqualDomainSid": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
279    "EqualPrefixSid": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
280    "EqualSid": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
281    "EventAccessControl": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
282    "EventAccessQuery": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
283    "EventAccessRemove": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
284    "EventActivityIdControl": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
285    "EventEnabled": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
286    "EventProviderEnabled": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
287    "EventRegister": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
288    "EventUnregister": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
289    "EventWrite": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
290    "EventWriteEndScenario": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
291    "EventWriteEx": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
292    "EventWriteStartScenario": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
293    "EventWriteString": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
294    "EventWriteTransfer": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
295    "FileEncryptionStatusA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
296    "FileEncryptionStatusW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
297    "FindFirstFreeAce": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
298    "FlushEfsCache": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
299    "FlushTraceA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
300    "FlushTraceW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
301    "FreeEncryptedFileKeyInfo": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
302    "FreeEncryptedFileMetadata": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
303    "FreeEncryptionCertificateHashList": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
304    "FreeInheritedFromArray": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
305    "FreeSid": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
306    "GetAccessPermissionsForObjectA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
307    "GetAccessPermissionsForObjectW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
308    "GetAce": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
309    "GetAclInformation": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
310    "GetAuditedPermissionsFromAclA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
311    "GetAuditedPermissionsFromAclW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
312    "GetCurrentHwProfileA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
313    "GetCurrentHwProfileW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
314    "GetEffectiveRightsFromAclA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
315    "GetEffectiveRightsFromAclW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
316    "GetEncryptedFileMetadata": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
317    "GetEventLogInformation": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
318    "GetExplicitEntriesFromAclA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
319    "GetExplicitEntriesFromAclW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
320    "GetFileSecurityA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
321    "GetFileSecurityW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
322    "GetInformationCodeAuthzLevelW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
323    "GetInformationCodeAuthzPolicyW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
324    "GetInheritanceSourceA": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
325    "GetInheritanceSourceW": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
326    "GetKernelObjectSecurity": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
327    "GetLengthSid": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
328    "GetLocalManagedApplicationData": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
329    "GetLocalManagedApplications": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
330    "GetManagedApplicationCategories": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
331    "GetManagedApplications": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
332    "GetMultipleTrusteeA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
333    "GetMultipleTrusteeOperationA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
334    "GetMultipleTrusteeOperationW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
335    "GetMultipleTrusteeW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
336    "GetNamedSecurityInfoA": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
337    "GetNamedSecurityInfoExA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
338    "GetNamedSecurityInfoExW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
339    "GetNamedSecurityInfoW": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
340    "GetNumberOfEventLogRecords": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
341    "GetOldestEventLogRecord": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
342    "GetOverlappedAccessResults": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
343    "GetPrivateObjectSecurity": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
344    "GetSecurityDescriptorControl": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
345    "GetSecurityDescriptorDacl": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
346    "GetSecurityDescriptorGroup": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
347    "GetSecurityDescriptorLength": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
348    "GetSecurityDescriptorOwner": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
349    "GetSecurityDescriptorRMControl": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
350    "GetSecurityDescriptorSacl": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
351    "GetSecurityInfo": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
352    "GetSecurityInfoExA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
353    "GetSecurityInfoExW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
354    "GetServiceDisplayNameA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
355    "GetServiceDisplayNameW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
356    "GetServiceKeyNameA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
357    "GetServiceKeyNameW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
358    "GetSidIdentifierAuthority": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
359    "GetSidLengthRequired": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
360    "GetSidSubAuthority": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
361    "GetSidSubAuthorityCount": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
362    "GetThreadWaitChain": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
363    "GetTokenInformation": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
364    "GetTraceEnableFlags": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
365    "GetTraceEnableLevel": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
366    "GetTraceLoggerHandle": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
367    "GetTrusteeFormA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
368    "GetTrusteeFormW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
369    "GetTrusteeNameA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
370    "GetTrusteeNameW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
371    "GetTrusteeTypeA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
372    "GetTrusteeTypeW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
373    "GetUserNameA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
374    "GetUserNameW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
375    "GetWindowsAccountDomainSid": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
376    "I_QueryTagInformation": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
377    "I_ScGetCurrentGroupStateW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
378    "I_ScIsSecurityProcess": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
379    "I_ScPnPGetServiceName": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
380    "I_ScQueryServiceConfig": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
381    "I_ScSendPnPMessage": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
382    "I_ScSendTSMessage": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
383    "I_ScSetServiceBitsA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
384    "I_ScSetServiceBitsW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
385    "I_ScValidatePnPService": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
386    "IdentifyCodeAuthzLevelW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
387    "ImpersonateAnonymousToken": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
388    "ImpersonateLoggedOnUser": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
389    "ImpersonateNamedPipeClient": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
390    "ImpersonateSelf": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
391    "InitializeAcl": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
392    "InitializeSecurityDescriptor": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
393    "InitializeSid": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
394    "InitiateShutdownA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
395    "InitiateShutdownW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
396    "InitiateSystemShutdownA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
397    "InitiateSystemShutdownExA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
398    "InitiateSystemShutdownExW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
399    "InitiateSystemShutdownW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
400    "InstallApplication": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
401    "IsTextUnicode": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
402    "IsTokenRestricted": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
403    "IsTokenUntrusted": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
404    "IsValidAcl": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
405    "IsValidRelativeSecurityDescriptor": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
406    "IsValidSecurityDescriptor": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
407    "IsValidSid": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
408    "IsWellKnownSid": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
409    "LockServiceDatabase": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
410    "LogonUserA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
411    "LogonUserExA": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
412    "LogonUserExExW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
413    "LogonUserExW": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
414    "LogonUserW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
415    "LookupAccountNameA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
416    "LookupAccountNameW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
417    "LookupAccountSidA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
418    "LookupAccountSidW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
419    "LookupPrivilegeDisplayNameA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
420    "LookupPrivilegeDisplayNameW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
421    "LookupPrivilegeNameA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
422    "LookupPrivilegeNameW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
423    "LookupPrivilegeValueA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
424    "LookupPrivilegeValueW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
425    "LookupSecurityDescriptorPartsA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
426    "LookupSecurityDescriptorPartsW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
427    "LsaAddAccountRights": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
428    "LsaAddPrivilegesToAccount": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
429    "LsaClearAuditLog": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
430    "LsaClose": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
431    "LsaCreateAccount": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
432    "LsaCreateSecret": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
433    "LsaCreateTrustedDomain": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
434    "LsaCreateTrustedDomainEx": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
435    "LsaDelete": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
436    "LsaDeleteTrustedDomain": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
437    "LsaEnumerateAccountRights": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
438    "LsaEnumerateAccounts": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
439    "LsaEnumerateAccountsWithUserRight": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
440    "LsaEnumeratePrivileges": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
441    "LsaEnumeratePrivilegesOfAccount": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
442    "LsaEnumerateTrustedDomains": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
443    "LsaEnumerateTrustedDomainsEx": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
444    "LsaFreeMemory": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
445    "LsaGetQuotasForAccount": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
446    "LsaGetRemoteUserName": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
447    "LsaGetSystemAccessAccount": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
448    "LsaGetUserName": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
449    "LsaICLookupNames": SimTypeFunction((SimTypeLong(),)*10, SimTypeLong()),
450    "LsaICLookupNamesWithCreds": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
451    "LsaICLookupSids": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
452    "LsaICLookupSidsWithCreds": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
453    "LsaLookupNames": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
454    "LsaLookupNames2": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
455    "LsaLookupPrivilegeDisplayName": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
456    "LsaLookupPrivilegeName": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
457    "LsaLookupPrivilegeValue": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
458    "LsaLookupSids": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
459    "LsaManageSidNameMapping": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
460    "LsaNtStatusToWinError": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
461    "LsaOpenAccount": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
462    "LsaOpenPolicy": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
463    "LsaOpenPolicySce": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
464    "LsaOpenSecret": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
465    "LsaOpenTrustedDomain": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
466    "LsaOpenTrustedDomainByName": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
467    "LsaQueryDomainInformationPolicy": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
468    "LsaQueryForestTrustInformation": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
469    "LsaQueryInfoTrustedDomain": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
470    "LsaQueryInformationPolicy": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
471    "LsaQuerySecret": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
472    "LsaQuerySecurityObject": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
473    "LsaQueryTrustedDomainInfo": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
474    "LsaQueryTrustedDomainInfoByName": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
475    "LsaRemoveAccountRights": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
476    "LsaRemovePrivilegesFromAccount": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
477    "LsaRetrievePrivateData": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
478    "LsaSetDomainInformationPolicy": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
479    "LsaSetForestTrustInformation": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
480    "LsaSetInformationPolicy": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
481    "LsaSetInformationTrustedDomain": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
482    "LsaSetQuotasForAccount": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
483    "LsaSetSecret": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
484    "LsaSetSecurityObject": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
485    "LsaSetSystemAccessAccount": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
486    "LsaSetTrustedDomainInfoByName": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
487    "LsaSetTrustedDomainInformation": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
488    "LsaStorePrivateData": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
489    "MD4Final": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
490    "MD4Init": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
491    "MD4Update": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
492    "MD5Final": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
493    "MD5Init": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
494    "MD5Update": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
495    "MSChapSrvChangePassword": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
496    "MSChapSrvChangePassword2": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
497    "MakeAbsoluteSD": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
498    "MakeAbsoluteSD2": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
499    "MakeSelfRelativeSD": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
500    "MapGenericMask": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
501    "NotifyBootConfigStatus": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
502    "NotifyChangeEventLog": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
503    "NotifyServiceStatusChange": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
504    "NotifyServiceStatusChangeA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
505    "NotifyServiceStatusChangeW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
506    "ObjectCloseAuditAlarmA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
507    "ObjectCloseAuditAlarmW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
508    "ObjectDeleteAuditAlarmA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
509    "ObjectDeleteAuditAlarmW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
510    "ObjectOpenAuditAlarmA": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
511    "ObjectOpenAuditAlarmW": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
512    "ObjectPrivilegeAuditAlarmA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
513    "ObjectPrivilegeAuditAlarmW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
514    "OpenBackupEventLogA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
515    "OpenBackupEventLogW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
516    "OpenEncryptedFileRawA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
517    "OpenEncryptedFileRawW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
518    "OpenEventLogA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
519    "OpenEventLogW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
520    "OpenProcessToken": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
521    "OpenSCManagerA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
522    "OpenSCManagerW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
523    "OpenServiceA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
524    "OpenServiceW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
525    "OpenThreadToken": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
526    "OpenThreadWaitChainSession": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
527    "OpenTraceA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
528    "OpenTraceW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
529    "PerfAddCounters": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
530    "PerfCloseQueryHandle": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
531    "PerfCreateInstance": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
532    "PerfDecrementULongCounterValue": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
533    "PerfDecrementULongLongCounterValue": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
534    "PerfDeleteCounters": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
535    "PerfDeleteInstance": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
536    "PerfEnumerateCounterSet": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
537    "PerfEnumerateCounterSetInstances": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
538    "PerfIncrementULongCounterValue": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
539    "PerfIncrementULongLongCounterValue": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
540    "PerfOpenQueryHandle": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
541    "PerfQueryCounterData": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
542    "PerfQueryCounterInfo": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
543    "PerfQueryCounterSetRegistrationInfo": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
544    "PerfQueryInstance": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
545    "PerfSetCounterRefValue": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
546    "PerfSetCounterSetInfo": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
547    "PerfSetULongCounterValue": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
548    "PerfSetULongLongCounterValue": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
549    "PerfStartProvider": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
550    "PerfStartProviderEx": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
551    "PerfStopProvider": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
552    "PrivilegeCheck": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
553    "PrivilegedServiceAuditAlarmA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
554    "PrivilegedServiceAuditAlarmW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
555    "ProcessIdleTasks": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
556    "ProcessIdleTasksW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
557    "ProcessTrace": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
558    "QueryAllTracesA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
559    "QueryAllTracesW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
560    "QueryRecoveryAgentsOnEncryptedFile": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
561    "QuerySecurityAccessMask": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
562    "QueryServiceConfig2A": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
563    "QueryServiceConfig2W": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
564    "QueryServiceConfigA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
565    "QueryServiceConfigW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
566    "QueryServiceLockStatusA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
567    "QueryServiceLockStatusW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
568    "QueryServiceObjectSecurity": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
569    "QueryServiceStatus": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
570    "QueryServiceStatusEx": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
571    "QueryTraceA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
572    "QueryTraceW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
573    "QueryUsersOnEncryptedFile": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
574    "ReadEncryptedFileRaw": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
575    "ReadEventLogA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
576    "ReadEventLogW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
577    "RegCloseKey": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
578    "RegConnectRegistryA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
579    "RegConnectRegistryExA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
580    "RegConnectRegistryExW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
581    "RegConnectRegistryW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
582    "RegCopyTreeA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
583    "RegCopyTreeW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
584    "RegCreateKeyA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
585    "RegCreateKeyExA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
586    "RegCreateKeyExW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
587    "RegCreateKeyTransactedA": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
588    "RegCreateKeyTransactedW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
589    "RegCreateKeyW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
590    "RegDeleteKeyA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
591    "RegDeleteKeyExA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
592    "RegDeleteKeyExW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
593    "RegDeleteKeyTransactedA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
594    "RegDeleteKeyTransactedW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
595    "RegDeleteKeyValueA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
596    "RegDeleteKeyValueW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
597    "RegDeleteKeyW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
598    "RegDeleteTreeA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
599    "RegDeleteTreeW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
600    "RegDeleteValueA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
601    "RegDeleteValueW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
602    "RegDisablePredefinedCache": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
603    "RegDisablePredefinedCacheEx": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
604    "RegDisableReflectionKey": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
605    "RegEnableReflectionKey": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
606    "RegEnumKeyA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
607    "RegEnumKeyExA": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
608    "RegEnumKeyExW": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
609    "RegEnumKeyW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
610    "RegEnumValueA": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
611    "RegEnumValueW": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
612    "RegFlushKey": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
613    "RegGetKeySecurity": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
614    "RegGetValueA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
615    "RegGetValueW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
616    "RegLoadAppKeyA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
617    "RegLoadAppKeyW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
618    "RegLoadKeyA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
619    "RegLoadKeyW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
620    "RegLoadMUIStringA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
621    "RegLoadMUIStringW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
622    "RegNotifyChangeKeyValue": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
623    "RegOpenCurrentUser": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
624    "RegOpenKeyA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
625    "RegOpenKeyExA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
626    "RegOpenKeyExW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
627    "RegOpenKeyTransactedA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
628    "RegOpenKeyTransactedW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
629    "RegOpenKeyW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
630    "RegOpenUserClassesRoot": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
631    "RegOverridePredefKey": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
632    "RegQueryInfoKeyA": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
633    "RegQueryInfoKeyW": SimTypeFunction((SimTypeLong(),)*12, SimTypeLong()),
634    "RegQueryMultipleValuesA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
635    "RegQueryMultipleValuesW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
636    "RegQueryReflectionKey": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
637    "RegQueryValueA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
638    "RegQueryValueExA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
639    "RegQueryValueExW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
640    "RegQueryValueW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
641    "RegRenameKey": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
642    "RegReplaceKeyA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
643    "RegReplaceKeyW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
644    "RegRestoreKeyA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
645    "RegRestoreKeyW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
646    "RegSaveKeyA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
647    "RegSaveKeyExA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
648    "RegSaveKeyExW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
649    "RegSaveKeyW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
650    "RegSetKeySecurity": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
651    "RegSetKeyValueA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
652    "RegSetKeyValueW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
653    "RegSetValueA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
654    "RegSetValueExA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
655    "RegSetValueExW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
656    "RegSetValueW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
657    "RegUnLoadKeyA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
658    "RegUnLoadKeyW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
659    "RegisterEventSourceA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
660    "RegisterEventSourceW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
661    "RegisterIdleTask": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
662    "RegisterServiceCtrlHandlerA": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
663    "RegisterServiceCtrlHandlerExA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
664    "RegisterServiceCtrlHandlerExW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
665    "RegisterServiceCtrlHandlerW": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
666    "RegisterTraceGuidsA": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
667    "RegisterTraceGuidsW": SimTypeFunction((SimTypeLong(),)*8, SimTypeLong()),
668    "RegisterWaitChainCOMCallback": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
669    "RemoveTraceCallback": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
670    "RemoveUsersFromEncryptedFile": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
671    "ReportEventA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
672    "ReportEventW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
673    "RevertToSelf": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
674    "SaferCloseLevel": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
675    "SaferComputeTokenFromLevel": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
676    "SaferCreateLevel": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
677    "SaferGetLevelInformation": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
678    "SaferGetPolicyInformation": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
679    "SaferIdentifyLevel": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
680    "SaferRecordEventLogEntry": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
681    "SaferSetLevelInformation": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
682    "SaferSetPolicyInformation": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
683    "SaferiChangeRegistryScope": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
684    "SaferiCompareTokenLevels": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
685    "SaferiIsDllAllowed": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
686    "SaferiIsExecutableFileType": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
687    "SaferiPopulateDefaultsInRegistry": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
688    "SaferiRecordEventLogEntry": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
689    "SaferiRegisterExtensionDll": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
690    "SaferiSearchMatchingHashRules": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
691    "SetAclInformation": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
692    "SetEncryptedFileMetadata": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
693    "SetEntriesInAccessListA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
694    "SetEntriesInAccessListW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
695    "SetEntriesInAclA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
696    "SetEntriesInAclW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
697    "SetEntriesInAuditListA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
698    "SetEntriesInAuditListW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
699    "SetFileSecurityA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
700    "SetFileSecurityW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
701    "SetInformationCodeAuthzLevelW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
702    "SetInformationCodeAuthzPolicyW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
703    "SetKernelObjectSecurity": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
704    "SetNamedSecurityInfoA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
705    "SetNamedSecurityInfoExA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
706    "SetNamedSecurityInfoExW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
707    "SetNamedSecurityInfoW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
708    "SetPrivateObjectSecurity": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
709    "SetPrivateObjectSecurityEx": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
710    "SetSecurityAccessMask": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
711    "SetSecurityDescriptorControl": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
712    "SetSecurityDescriptorDacl": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
713    "SetSecurityDescriptorGroup": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
714    "SetSecurityDescriptorOwner": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
715    "SetSecurityDescriptorRMControl": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
716    "SetSecurityDescriptorSacl": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
717    "SetSecurityInfo": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
718    "SetSecurityInfoExA": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
719    "SetSecurityInfoExW": SimTypeFunction((SimTypeLong(),)*9, SimTypeLong()),
720    "SetServiceBits": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
721    "SetServiceObjectSecurity": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
722    "SetServiceStatus": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
723    "SetThreadToken": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
724    "SetTokenInformation": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
725    "SetTraceCallback": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
726    "SetUserFileEncryptionKey": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
727    "SetUserFileEncryptionKeyEx": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
728    "StartServiceA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
729    "StartServiceCtrlDispatcherA": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
730    "StartServiceCtrlDispatcherW": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
731    "StartServiceW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
732    "StartTraceA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
733    "StartTraceW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
734    "StopTraceA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
735    "StopTraceW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
736    "SystemFunction001": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
737    "SystemFunction002": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
738    "SystemFunction003": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
739    "SystemFunction004": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
740    "SystemFunction005": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
741    "SystemFunction006": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
742    "SystemFunction007": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
743    "SystemFunction008": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
744    "SystemFunction009": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
745    "SystemFunction010": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
746    "SystemFunction011": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
747    "SystemFunction012": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
748    "SystemFunction013": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
749    "SystemFunction014": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
750    "SystemFunction015": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
751    "SystemFunction016": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
752    "SystemFunction017": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
753    "SystemFunction018": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
754    "SystemFunction019": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
755    "SystemFunction020": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
756    "SystemFunction021": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
757    "SystemFunction022": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
758    "SystemFunction023": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
759    "SystemFunction024": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
760    "SystemFunction025": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
761    "SystemFunction026": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
762    "SystemFunction027": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
763    "SystemFunction028": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
764    "SystemFunction029": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
765    "SystemFunction030": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
766    "SystemFunction031": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
767    "SystemFunction032": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
768    "SystemFunction033": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
769    "SystemFunction034": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
770    "SystemFunction035": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
771    "SystemFunction036": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
772    "SystemFunction040": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
773    "SystemFunction041": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
774    "TraceEvent": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
775    "TraceEventInstance": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
776    "TraceMessage": SimTypeFunction((SimTypeLong(),)*0, SimTypeLong()),
777    "TraceMessageVa": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
778    "TraceSetInformation": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
779    "TreeResetNamedSecurityInfoA": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
780    "TreeResetNamedSecurityInfoW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
781    "TreeSetNamedSecurityInfoA": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
782    "TreeSetNamedSecurityInfoW": SimTypeFunction((SimTypeLong(),)*11, SimTypeLong()),
783    "TrusteeAccessToObjectA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
784    "TrusteeAccessToObjectW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
785    "UninstallApplication": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
786    "UnlockServiceDatabase": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
787    "UnregisterIdleTask": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
788    "UnregisterTraceGuids": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
789    "UpdateTraceA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
790    "UpdateTraceW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
791    "UsePinForEncryptedFilesA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
792    "UsePinForEncryptedFilesW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
793    "WmiCloseBlock": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
794    "WmiDevInstToInstanceNameA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
795    "WmiDevInstToInstanceNameW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
796    "WmiEnumerateGuids": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
797    "WmiExecuteMethodA": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
798    "WmiExecuteMethodW": SimTypeFunction((SimTypeLong(),)*7, SimTypeLong()),
799    "WmiFileHandleToInstanceNameA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
800    "WmiFileHandleToInstanceNameW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
801    "WmiFreeBuffer": SimTypeFunction((SimTypeLong(),)*1, SimTypeLong()),
802    "WmiMofEnumerateResourcesA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
803    "WmiMofEnumerateResourcesW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
804    "WmiNotificationRegistrationA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
805    "WmiNotificationRegistrationW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
806    "WmiOpenBlock": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
807    "WmiQueryAllDataA": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
808    "WmiQueryAllDataMultipleA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
809    "WmiQueryAllDataMultipleW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
810    "WmiQueryAllDataW": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong()),
811    "WmiQueryGuidInformation": SimTypeFunction((SimTypeLong(),)*2, SimTypeLong()),
812    "WmiQuerySingleInstanceA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
813    "WmiQuerySingleInstanceMultipleA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
814    "WmiQuerySingleInstanceMultipleW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
815    "WmiQuerySingleInstanceW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
816    "WmiReceiveNotificationsA": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
817    "WmiReceiveNotificationsW": SimTypeFunction((SimTypeLong(),)*4, SimTypeLong()),
818    "WmiSetSingleInstanceA": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
819    "WmiSetSingleInstanceW": SimTypeFunction((SimTypeLong(),)*5, SimTypeLong()),
820    "WmiSetSingleItemA": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
821    "WmiSetSingleItemW": SimTypeFunction((SimTypeLong(),)*6, SimTypeLong()),
822    "WriteEncryptedFileRaw": SimTypeFunction((SimTypeLong(),)*3, SimTypeLong())
823}
824
825lib.set_prototypes(prototypes)
826