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