8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "DbgBreakPoint" => ["void", []],
16 "DbgUserBreakPoint" => ["void", []],
17 "NtAcceptConnectPort" => ["long", ["long", "long", "long", "long", "long", "long"]],
18 "NtAccessCheck" => ["long", ["ptr", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
19 "NtAdjustPrivilegesToken" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
20 "NtAllocateLocallyUniqueId" => ["long", ["ptr"]],
21 "NtAllocateUuids" => ["long", ["ptr", "ptr", "ptr"]],
22 "NtClearEvent" => ["long", ["long"]],
23 "NtClose" => ["long", ["long"]],
24 "NtCompleteConnectPort" => ["long", ["long"]],
25 "NtConnectPort" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long"]],
26 "NtCreateDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
27 "NtCreateEvent" => ["long", ["ptr", "long", "ptr", "long", "long"]],
28 "NtCreateKey" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "ptr"]],
29 "NtCreateMailslotFile" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
30 "NtCreatePagingFile" => ["long", ["ptr", "long", "long", "ptr"]],
31 "NtCreatePort" => ["long", ["long", "long", "long", "long", "long"]],
32 "NtCreateSection" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long", "long"]],
33 "NtCreateSemaphore" => ["long", ["ptr", "long", "ptr", "long", "long"]],
34 "NtCreateSymbolicLinkObject" => ["long", ["ptr", "long", "ptr", "ptr"]],
35 "NtCreateTimer" => ["long", ["ptr", "long", "ptr", "long"]],
36 "NtDeleteKey" => ["long", ["long"]],
37 "NtDeleteValueKey" => ["long", ["long", "ptr"]],
38 "NtDeviceIoControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
39 "NtDisplayString" => ["long", ["ptr"]],
40 "NtDuplicateObject" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "long"]],
41 "NtDuplicateToken" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
42 "NtEnumerateKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
43 "NtEnumerateValueKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
44 "NtFlushKey" => ["long", ["long"]],
45 "NtFsControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
46 "NtListenPort" => ["long", ["long", "long"]],
47 "NtLoadKey" => ["long", ["ptr", "ptr"]],
48 "NtMapViewOfSection" => ["long", ["long", "long", "ptr", "long", "long", "ptr", "ptr", "long", "long", "long"]],
49 "NtNotifyChangeKey" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "long", "ptr", "long", "long"]],
50 "NtOpenDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
51 "NtOpenEvent" => ["long", ["ptr", "long", "ptr"]],
52 "NtOpenFile" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long"]],
53 "NtOpenKey" => ["long", ["ptr", "long", "ptr"]],
54 "NtOpenProcessToken" => ["long", ["long", "long", "ptr"]],
55 "NtOpenSection" => ["long", ["ptr", "long", "ptr"]],
56 "NtOpenSemaphore" => ["long", ["ptr", "long", "ptr"]],
57 "NtOpenSymbolicLinkObject" => ["long", ["ptr", "long", "ptr"]],
58 "NtOpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
59 "NtPowerInformation" => ["long", ["long", "long", "long", "long", "long"]],
60 "NtPulseEvent" => ["long", ["long", "ptr"]],
61 "NtQueryDirectoryFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "long", "long", "ptr", "long"]],
62 "NtQueryDirectoryObject" => ["long", ["long", "ptr", "long", "long", "long", "ptr", "ptr"]],
63 "NtQueryEvent" => ["long", ["long", "long", "ptr", "long", "ptr"]],
64 "NtQueryInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
65 "NtQueryInformationProcess" => ["long", ["long", "long", "ptr", "long", "ptr"]],
66 "NtQueryInformationThread" => ["long", ["long", "long", "ptr", "long", "ptr"]],
67 "NtQueryInformationToken" => ["long", ["long", "long", "ptr", "long", "ptr"]],
68 "NtQueryKey" => ["long", ["long", "long", "ptr", "long", "ptr"]],
69 "NtQueryObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
70 "NtQueryPerformanceCounter" => ["long", ["ptr", "ptr"]],
71 "NtQuerySection" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
72 "NtQuerySecurityObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
73 "NtQuerySemaphore" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
74 "NtQuerySymbolicLinkObject" => ["long", ["long", "ptr", "ptr"]],
75 "NtQuerySystemInformation" => ["long", ["long", "ptr", "long", "ptr"]],
76 "NtQuerySystemTime" => ["void", ["ptr"]],
77 "NtQueryTimerResolution" => ["long", ["long", "long", "long"]],
78 "NtQueryValueKey" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
79 "NtQueryVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
80 "NtRaiseException" => ["void", ["ptr", "ptr", "long", "ptr"]],
81 "NtReadFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
82 "NtRegisterThreadTerminatePort" => ["long", ["long"]],
83 "NtReleaseSemaphore" => ["long", ["long", "long", "ptr"]],
84 "NtReplaceKey" => ["long", ["ptr", "long", "ptr"]],
85 "NtReplyWaitReceivePort" => ["long", ["long", "long", "long", "long"]],
86 "NtRequestWaitReplyPort" => ["long", ["long", "long", "long"]],
87 "NtResetEvent" => ["long", ["long", "ptr"]],
88 "NtRestoreKey" => ["long", ["long", "long", "long"]],
89 "NtResumeThread" => ["long", ["long", "ptr"]],
90 "NtSaveKey" => ["long", ["long", "long"]],
91 "NtSetEvent" => ["long", ["long", "ptr"]],
92 "NtSetInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
93 "NtSetInformationKey" => ["long", ["long", "long", "ptr", "long"]],
94 "NtSetInformationProcess" => ["long", ["long", "long", "ptr", "long"]],
95 "NtSetInformationThread" => ["long", ["long", "long", "ptr", "long"]],
96 "NtSetIntervalProfile" => ["long", ["long", "long"]],
97 "NtSetSecurityObject" => ["long", ["long", "long", "ptr"]],
98 "NtSetTimer" => ["long", ["long", "ptr", "ptr", "ptr", "long", "long", "ptr"]],
99 "NtSetValueKey" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
100 "NtSetVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
101 "NtTerminateProcess" => ["long", ["long", "long"]],
102 "NtTerminateThread" => ["long", ["long", "long"]],
103 "NtUnloadKey" => ["long", ["long"]],
104 "NtWaitForSingleObject" => ["long", ["ptr", "long", "ptr"]],
105 "NtWriteFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
106 "RtlAcquirePebLock" => ["void", []],
107 "RtlAcquireResourceExclusive" => ["long", ["ptr", "long"]],
108 "RtlAcquireResourceShared" => ["long", ["ptr", "long"]],
109 "RtlAddAccessAllowedAce" => ["long", ["ptr", "long", "long", "ptr"]],
110 "RtlAddAce" => ["long", ["ptr", "long", "long", "ptr", "long"]],
111 "RtlAdjustPrivilege" => ["long", ["long", "long", "long", "long"]],
112 "RtlAllocateAndInitializeSid" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
113 "RtlAllocateHeap" => ["ptr", ["long", "long", "long"]],
114 "RtlAnsiStringToUnicodeSize" => ["long", ["ptr"]],
115 "RtlAnsiStringToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
116 "RtlAppendAsciizToString" => ["long", ["ptr", "str"]],
117 "RtlAppendStringToString" => ["long", ["ptr", "ptr"]],
118 "RtlAppendUnicodeStringToString" => ["long", ["ptr", "ptr"]],
119 "RtlAppendUnicodeToString" => ["long", ["ptr", "wstr"]],
120 "RtlAreBitsClear" => ["long", ["ptr", "long", "long"]],
121 "RtlAreBitsSet" => ["long", ["ptr", "long", "long"]],
122 "RtlAssert" => ["void", ["ptr", "ptr", "long", "long"]],
123 "RtlClearAllBits" => ["void", ["ptr"]],
124 "RtlClearBits" => ["void", ["ptr", "long", "long"]],
125 "RtlCompactHeap" => ["long", ["long", "long"]],
126 "RtlCompareMemory" => ["long", ["ptr", "ptr", "long"]],
127 "RtlCompareString" => ["long", ["ptr", "ptr", "long"]],
128 "RtlCompareUnicodeString" => ["long", ["ptr", "ptr", "long"]],
129 "RtlConvertLongToLargeInteger" => ["longlong", ["long"]],
130 "RtlConvertSidToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
131 "RtlConvertUlongToLargeInteger" => ["longlong", ["long"]],
132 "RtlCopySid" => ["long", ["long", "ptr", "ptr"]],
133 "RtlCopyString" => ["void", ["ptr", "ptr"]],
134 "RtlCopyUnicodeString" => ["void", ["ptr", "ptr"]],
135 "RtlCreateAcl" => ["long", ["ptr", "long", "long"]],
136 "RtlCreateEnvironment" => ["long", ["long", "long"]],
137 "RtlCreateHeap" => ["long", ["long", "ptr", "long", "long", "ptr", "ptr"]],
138 "RtlCreateSecurityDescriptor" => ["long", ["ptr", "long"]],
139 "RtlCreateUnicodeString" => ["long", ["ptr", "wstr"]],
140 "RtlCreateUnicodeStringFromAsciiz" => ["long", ["ptr", "str"]],
141 "RtlDeleteCriticalSection" => ["long", ["ptr"]],
142 "RtlDeleteResource" => ["void", ["ptr"]],
143 "RtlDeleteSecurityObject" => ["long", ["long"]],
144 "RtlDestroyEnvironment" => ["long", ["long"]],
145 "RtlDestroyHeap" => ["long", ["long"]],
146 "RtlDosPathNameToNtPathName_U" => ["long", ["wstr", "ptr", "long", "long"]],
147 "RtlDumpResource" => ["void", ["ptr"]],
148 "RtlEnlargedIntegerMultiply" => ["longlong", ["long", "long"]],
149 "RtlEnlargedUnsignedDivide" => ["long", ["long", "long", "long", "ptr"]],
150 "RtlEnlargedUnsignedMultiply" => ["longlong", ["long", "long"]],
151 "RtlEnterCriticalSection" => ["long", ["ptr"]],
152 "RtlEqualPrefixSid" => ["long", ["ptr", "ptr"]],
153 "RtlEqualSid" => ["long", ["ptr", "ptr"]],
154 "RtlEqualString" => ["long", ["ptr", "ptr", "long"]],
155 "RtlEqualUnicodeString" => ["long", ["ptr", "ptr", "long"]],
156 "RtlEraseUnicodeString" => ["void", ["ptr"]],
157 "RtlExtendedIntegerMultiply" => ["longlong", ["long", "long", "long"]],
158 "RtlExtendedLargeIntegerDivide" => ["longlong", ["long", "long", "long", "ptr"]],
159 "RtlFillMemory" => ["void", ["ptr", "long", "long"]],
160 "RtlFillMemoryUlong" => ["void", ["ptr", "long", "long"]],
161 "RtlFindClearBits" => ["long", ["ptr", "long", "long"]],
162 "RtlFindClearBitsAndSet" => ["long", ["ptr", "long", "long"]],
163 "RtlFindClearRuns" => ["long", ["ptr", "ptr", "long", "long"]],
164 "RtlFindLastBackwardRunClear" => ["long", ["ptr", "long", "ptr"]],
165 "RtlFindLastBackwardRunSet" => ["long", ["ptr", "long", "ptr"]],
166 "RtlFindLeastSignificantBit" => ["long", ["long", "long"]],
167 "RtlFindLongestRunClear" => ["long", ["ptr", "ptr"]],
168 "RtlFindLongestRunSet" => ["long", ["ptr", "ptr"]],
169 "RtlFindMostSignificantBit" => ["long", ["long", "long"]],
170 "RtlFindNextForwardRunClear" => ["long", ["ptr", "long", "ptr"]],
171 "RtlFindNextForwardRunSet" => ["long", ["ptr", "long", "ptr"]],
172 "RtlFindSetBits" => ["long", ["ptr", "long", "long"]],
173 "RtlFindSetBitsAndClear" => ["long", ["ptr", "long", "long"]],
174 "RtlFindSetRuns" => ["long", ["ptr", "ptr", "long", "long"]],
175 "RtlFirstFreeAce" => ["long", ["ptr", "ptr"]],
176 "RtlFormatCurrentUserKeyPath" => ["long", ["ptr"]],
177 "RtlFreeAnsiString" => ["void", ["ptr"]],
178 "RtlFreeHeap" => ["long", ["long", "long", "ptr"]],
179 "RtlFreeOemString" => ["void", ["ptr"]],
180 "RtlFreeSid" => ["long", ["ptr"]],
181 "RtlFreeUnicodeString" => ["void", ["ptr"]],
182 "RtlGetAce" => ["long", ["ptr", "long", "ptr"]],
183 "RtlGetControlSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
184 "RtlGetDaclSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
185 "RtlGetGroupSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
186 "RtlGetLongestNtPathLength" => ["long", []],
187 "RtlGetNtProductType" => ["long", ["ptr"]],
188 "RtlGetNtVersionNumbers" => ["void", ["ptr", "ptr", "ptr"]],
189 "RtlGetOwnerSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
190 "RtlGetProcessHeaps" => ["long", ["long", "ptr"]],
191 "RtlGetSaclSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
192 "RtlIdentifierAuthoritySid" => ["ptr", ["ptr"]],
193 "RtlImageDirectoryEntryToData" => ["ptr", ["long", "long", "long", "ptr"]],
194 "RtlImageNtHeader" => ["ptr", ["long"]],
195 "RtlImageRvaToSection" => ["ptr", ["ptr", "long", "long"]],
196 "RtlImageRvaToVa" => ["ptr", ["ptr", "long", "long", "ptr"]],
197 "RtlImpersonateSelf" => ["long", ["long"]],
198 "RtlInitAnsiString" => ["void", ["ptr", "str"]],
199 "RtlInitString" => ["void", ["ptr", "str"]],
200 "RtlInitUnicodeString" => ["void", ["ptr", "wstr"]],
201 "RtlInitializeBitMap" => ["void", ["ptr", "ptr", "long"]],
202 "RtlInitializeCriticalSection" => ["long", ["ptr"]],
203 "RtlInitializeCriticalSectionAndSpinCount" => ["long", ["ptr", "long"]],
204 "RtlInitializeGenericTable" => ["long", []],
205 "RtlInitializeResource" => ["void", ["ptr"]],
206 "RtlInitializeSid" => ["long", ["ptr", "ptr", "long"]],
207 "RtlIntegerToChar" => ["long", ["long", "long", "long", "long"]],
208 "RtlIsTextUnicode" => ["long", ["ptr", "long", "ptr"]],
209 "RtlLargeIntegerAdd" => ["longlong", ["long", "long", "long", "long"]],
210 "RtlLargeIntegerArithmeticShift" => ["longlong", ["long", "long", "long"]],
211 "RtlLargeIntegerDivide" => ["longlong", ["long", "long", "long", "long", "ptr"]],
212 "RtlLargeIntegerNegate" => ["longlong", ["long", "long"]],
213 "RtlLargeIntegerShiftLeft" => ["longlong", ["long", "long", "long"]],
214 "RtlLargeIntegerShiftRight" => ["longlong", ["long", "long", "long"]],
215 "RtlLargeIntegerSubtract" => ["longlong", ["long", "long", "long", "long"]],
216 "RtlLeaveCriticalSection" => ["long", ["ptr"]],
217 "RtlLengthRequiredSid" => ["long", ["long"]],
218 "RtlLengthSecurityDescriptor" => ["long", ["ptr"]],
219 "RtlLengthSid" => ["long", ["ptr"]],
220 "RtlLockHeap" => ["long", ["long"]],
221 "RtlMakeSelfRelativeSD" => ["long", ["ptr", "ptr", "ptr"]],
222 "RtlMoveMemory" => ["void", ["ptr", "ptr", "long"]],
223 "RtlMultiByteToUnicodeN" => ["long", ["wstr", "long", "ptr", "str", "long"]],
224 "RtlMultiByteToUnicodeSize" => ["long", ["ptr", "str", "long"]],
225 "RtlNewSecurityObject" => ["long", ["long", "long", "long", "long", "long", "long"]],
226 "RtlNormalizeProcessParams" => ["ptr", ["ptr"]],
227 "RtlNtStatusToDosError" => ["long", ["long"]],
228 "RtlNumberOfClearBits" => ["long", ["ptr"]],
229 "RtlNumberOfSetBits" => ["long", ["ptr"]],
230 "RtlOemStringToUnicodeSize" => ["long", ["ptr"]],
231 "RtlOemStringToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
232 "RtlOemToUnicodeN" => ["long", ["wstr", "long", "ptr", "str", "long"]],
233 "RtlOpenCurrentUser" => ["long", ["long", "ptr"]],
234 "RtlPrefixString" => ["long", ["ptr", "ptr", "long"]],
235 "RtlPrefixUnicodeString" => ["long", ["ptr", "ptr", "long"]],
236 "RtlQueryEnvironmentVariable_U" => ["long", ["long", "ptr", "ptr"]],
237 "RtlRaiseException" => ["void", ["ptr", "ptr"]],
238 "RtlRaiseStatus" => ["void", ["long"]],
239 "RtlReAllocateHeap" => ["ptr", ["long", "long", "ptr", "long"]],
240 "RtlReleasePebLock" => ["void", []],
241 "RtlReleaseResource" => ["void", ["ptr"]],
242 "RtlSecondsSince1970ToTime" => ["void", ["long", "ptr"]],
243 "RtlSecondsSince1980ToTime" => ["void", ["long", "ptr"]],
244 "RtlSetAllBits" => ["void", ["ptr"]],
245 "RtlSetBits" => ["void", ["ptr", "long", "long"]],
246 "RtlSetDaclSecurityDescriptor" => ["long", ["ptr", "long", "ptr", "long"]],
247 "RtlSetEnvironmentVariable" => ["long", ["long", "ptr", "ptr"]],
248 "RtlSetGroupSecurityDescriptor" => ["long", ["ptr", "ptr", "long"]],
249 "RtlSetOwnerSecurityDescriptor" => ["long", ["ptr", "ptr", "long"]],
250 "RtlSetSaclSecurityDescriptor" => ["long", ["ptr", "long", "ptr", "long"]],
251 "RtlSizeHeap" => ["long", ["long", "long", "ptr"]],
252 "RtlSubAuthorityCountSid" => ["ptr", ["ptr"]],
253 "RtlSubAuthoritySid" => ["ptr", ["ptr", "long"]],
254 "RtlSystemTimeToLocalTime" => ["void", ["ptr", "ptr"]],
255 "RtlTimeFieldsToTime" => ["long", ["ptr", "ptr"]],
256 "RtlTimeToElapsedTimeFields" => ["void", ["ptr", "ptr"]],
257 "RtlTimeToSecondsSince1970" => ["long", ["ptr", "ptr"]],
258 "RtlTimeToSecondsSince1980" => ["long", ["ptr", "ptr"]],
259 "RtlTimeToTimeFields" => ["void", ["ptr", "ptr"]],
260 "RtlTryEnterCriticalSection" => ["long", ["ptr"]],
261 "RtlUnicodeStringToAnsiSize" => ["long", ["ptr"]],
262 "RtlUnicodeStringToAnsiString" => ["long", ["ptr", "ptr", "long"]],
263 "RtlUnicodeStringToOemSize" => ["long", ["ptr"]],
264 "RtlUnicodeStringToOemString" => ["long", ["ptr", "ptr", "long"]],
265 "RtlUnicodeToMultiByteN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
266 "RtlUnicodeToMultiByteSize" => ["long", ["ptr", "wstr", "long"]],
267 "RtlUnicodeToOemN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
268 "RtlUnlockHeap" => ["long", ["long"]],
269 "RtlUnwind" => ["void", ["ptr", "ptr", "ptr", "long", "ptr"]],
270 "RtlUpcaseUnicodeString" => ["long", ["ptr", "ptr", "long"]],
271 "RtlUpcaseUnicodeStringToAnsiString" => ["long", ["ptr", "ptr", "long"]],
272 "RtlUpcaseUnicodeStringToOemString" => ["long", ["ptr", "ptr", "long"]],
273 "RtlUpcaseUnicodeToMultiByteN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
274 "RtlUpcaseUnicodeToOemN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
275 "RtlUpperString" => ["void", ["ptr", "ptr"]],
276 "RtlValidSecurityDescriptor" => ["long", ["ptr"]],
277 "RtlValidSid" => ["long", ["ptr"]],
278 "RtlValidateHeap" => ["long", ["long", "long", "ptr"]],
279 "RtlWalkHeap" => ["long", ["long", "ptr"]],
280 "RtlZeroMemory" => ["void", ["ptr", "long"]],
281 "RtlpUnWaitCriticalSection" => ["long", ["ptr"]],
282 "RtlpWaitForCriticalSection" => ["long", ["ptr"]],
283 "RtlxAnsiStringToUnicodeSize" => ["long", ["ptr"]],
284 "RtlxOemStringToUnicodeSize" => ["long", ["ptr"]],
285 "RtlxUnicodeStringToAnsiSize" => ["long", ["ptr"]],
286 "RtlxUnicodeStringToOemSize" => ["long", ["ptr"]],
287 "VerSetConditionMask" => ["longlong", ["long", "long", "long", "long"]],
288 "ZwAcceptConnectPort" => ["long", ["long", "long", "long", "long", "long", "long"]],
289 "ZwAdjustGroupsToken" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
290 "ZwCompleteConnectPort" => ["long", ["long"]],
291 "ZwConnectPort" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long"]],
292 "ZwCreateDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
293 "ZwCreateEvent" => ["long", ["ptr", "long", "ptr", "long", "long"]],
294 "ZwCreateKey" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "ptr"]],
295 "ZwCreateMailslotFile" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
296 "ZwCreatePagingFile" => ["long", ["ptr", "long", "long", "ptr"]],
297 "ZwCreatePort" => ["long", ["long", "long", "long", "long", "long"]],
298 "ZwCreateSection" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long", "long"]],
299 "ZwCreateTimer" => ["long", ["ptr", "long", "ptr", "long"]],
300 "ZwDeleteKey" => ["long", ["long"]],
301 "ZwDeleteValueKey" => ["long", ["long", "ptr"]],
302 "ZwDeviceIoControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
303 "ZwDuplicateObject" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "long"]],
304 "ZwDuplicateToken" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
305 "ZwEnumerateKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
306 "ZwEnumerateValueKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
307 "ZwFlushKey" => ["long", ["long"]],
308 "ZwFsControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
309 "ZwListenPort" => ["long", ["long", "long"]],
310 "ZwLoadKey" => ["long", ["ptr", "ptr"]],
311 "ZwMapViewOfSection" => ["long", ["long", "long", "ptr", "long", "long", "ptr", "ptr", "long", "long", "long"]],
312 "ZwNotifyChangeKey" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "long", "ptr", "long", "long"]],
313 "ZwOpenDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
314 "ZwOpenEvent" => ["long", ["ptr", "long", "ptr"]],
315 "ZwOpenFile" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long"]],
316 "ZwOpenKey" => ["long", ["ptr", "long", "ptr"]],
317 "ZwOpenProcessToken" => ["long", ["long", "long", "ptr"]],
318 "ZwOpenSection" => ["long", ["ptr", "long", "ptr"]],
319 "ZwOpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
320 "ZwQueryDirectoryFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "long", "long", "ptr", "long"]],
321 "ZwQueryDirectoryObject" => ["long", ["long", "ptr", "long", "long", "long", "ptr", "ptr"]],
322 "ZwQueryInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
323 "ZwQueryInformationProcess" => ["long", ["long", "long", "ptr", "long", "ptr"]],
324 "ZwQueryInformationThread" => ["long", ["long", "long", "ptr", "long", "ptr"]],
325 "ZwQueryInformationToken" => ["long", ["long", "long", "ptr", "long", "ptr"]],
326 "ZwQueryKey" => ["long", ["long", "long", "ptr", "long", "ptr"]],
327 "ZwQueryObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
328 "ZwQuerySystemInformation" => ["long", ["long", "ptr", "long", "ptr"]],
329 "ZwQuerySystemTime" => ["void", ["ptr"]],
330 "ZwQueryValueKey" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
331 "ZwQueryVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
332 "ZwReadFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
333 "ZwRegisterThreadTerminatePort" => ["long", ["long"]],
334 "ZwReplaceKey" => ["long", ["ptr", "long", "ptr"]],
335 "ZwReplyWaitReceivePort" => ["long", ["long", "long", "long", "long"]],
336 "ZwRequestWaitReplyPort" => ["long", ["long", "long", "long"]],
337 "ZwRestoreKey" => ["long", ["long", "long", "long"]],
338 "ZwResumeThread" => ["long", ["long", "ptr"]],
339 "ZwSaveKey" => ["long", ["long", "long"]],
340 "ZwSetEvent" => ["long", ["long", "ptr"]],
341 "ZwSetInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
342 "ZwSetInformationKey" => ["long", ["long", "long", "ptr", "long"]],
343 "ZwSetInformationProcess" => ["long", ["long", "long", "ptr", "long"]],
344 "ZwSetInformationThread" => ["long", ["long", "long", "ptr", "long"]],
345 "ZwSetIntervalProfile" => ["long", ["long", "long"]],
346 "ZwSetTimer" => ["long", ["long", "ptr", "ptr", "ptr", "long", "long", "ptr"]],
347 "ZwSetValueKey" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
348 "ZwSetVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
349 "ZwTerminateThread" => ["long", ["long", "long"]],
350 "ZwUnloadKey" => ["long", ["long"]],
351 "ZwWaitForSingleObject" => ["long", ["ptr", "long", "ptr"]],
352 "ZwWriteFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
353 "_alldiv" => ["longlong", ["long", "long", "long", "long"]],
354 "_allmul" => ["longlong", ["long", "long", "long", "long"]],
355 "_alloca_probe" => ["void", ["ptr"]],
356 "_allrem" => ["longlong", ["long", "long", "long", "long"]],
357 "_aulldiv" => ["longlong", ["long", "long", "long", "long"]],
358 "_aullrem" => ["longlong", ["long", "long", "long", "long"]],
359 "_chkstk" => ["void", ["ptr"]]
362 &wine::declare("ntdll",%$module_declarations);
363 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));