365 lines
23 KiB
Perl
365 lines
23 KiB
Perl
package ntdll;
|
|
|
|
use strict;
|
|
|
|
require Exporter;
|
|
|
|
use wine;
|
|
use vars qw(@ISA @EXPORT @EXPORT_OK);
|
|
|
|
@ISA = qw(Exporter);
|
|
@EXPORT = qw();
|
|
@EXPORT_OK = qw();
|
|
|
|
my $module_declarations = {
|
|
"DbgBreakPoint" => ["void", []],
|
|
"DbgUserBreakPoint" => ["void", []],
|
|
"NtAcceptConnectPort" => ["long", ["long", "long", "long", "long", "long", "long"]],
|
|
"NtAccessCheck" => ["long", ["ptr", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
|
|
"NtAdjustPrivilegesToken" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
|
|
"NtAllocateLocallyUniqueId" => ["long", ["ptr"]],
|
|
"NtAllocateUuids" => ["long", ["ptr", "ptr", "ptr"]],
|
|
"NtClearEvent" => ["long", ["long"]],
|
|
"NtClose" => ["long", ["long"]],
|
|
"NtCompleteConnectPort" => ["long", ["long"]],
|
|
"NtConnectPort" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long"]],
|
|
"NtCreateDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtCreateEvent" => ["long", ["ptr", "long", "ptr", "long", "long"]],
|
|
"NtCreateKey" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "ptr"]],
|
|
"NtCreateMailslotFile" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
|
|
"NtCreatePagingFile" => ["long", ["ptr", "long", "long", "ptr"]],
|
|
"NtCreatePort" => ["long", ["long", "long", "long", "long", "long"]],
|
|
"NtCreateSection" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long", "long"]],
|
|
"NtCreateSemaphore" => ["long", ["ptr", "long", "ptr", "long", "long"]],
|
|
"NtCreateSymbolicLinkObject" => ["long", ["ptr", "long", "ptr", "ptr"]],
|
|
"NtCreateTimer" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
"NtDeleteKey" => ["long", ["long"]],
|
|
"NtDeleteValueKey" => ["long", ["long", "ptr"]],
|
|
"NtDeviceIoControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
|
|
"NtDisplayString" => ["long", ["ptr"]],
|
|
"NtDuplicateObject" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "long"]],
|
|
"NtDuplicateToken" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
|
|
"NtEnumerateKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
|
|
"NtEnumerateValueKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
|
|
"NtFlushKey" => ["long", ["long"]],
|
|
"NtFsControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
|
|
"NtListenPort" => ["long", ["long", "long"]],
|
|
"NtLoadKey" => ["long", ["ptr", "ptr"]],
|
|
"NtMapViewOfSection" => ["long", ["long", "long", "ptr", "long", "long", "ptr", "ptr", "long", "long", "long"]],
|
|
"NtNotifyChangeKey" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "long", "ptr", "long", "long"]],
|
|
"NtOpenDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtOpenEvent" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtOpenFile" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long"]],
|
|
"NtOpenKey" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtOpenProcessToken" => ["long", ["long", "long", "ptr"]],
|
|
"NtOpenSection" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtOpenSemaphore" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtOpenSymbolicLinkObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtOpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
|
|
"NtPowerInformation" => ["long", ["long", "long", "long", "long", "long"]],
|
|
"NtPulseEvent" => ["long", ["long", "ptr"]],
|
|
"NtQueryDirectoryFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "long", "long", "ptr", "long"]],
|
|
"NtQueryDirectoryObject" => ["long", ["long", "ptr", "long", "long", "long", "ptr", "ptr"]],
|
|
"NtQueryEvent" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"NtQueryInformationProcess" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryInformationThread" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryInformationToken" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryKey" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryPerformanceCounter" => ["long", ["ptr", "ptr"]],
|
|
"NtQuerySection" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
|
|
"NtQuerySecurityObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"NtQuerySemaphore" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
|
|
"NtQuerySymbolicLinkObject" => ["long", ["long", "ptr", "ptr"]],
|
|
"NtQuerySystemInformation" => ["long", ["long", "ptr", "long", "ptr"]],
|
|
"NtQuerySystemTime" => ["void", ["ptr"]],
|
|
"NtQueryTimerResolution" => ["long", ["long", "long", "long"]],
|
|
"NtQueryValueKey" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
|
|
"NtQueryVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"NtRaiseException" => ["void", ["ptr", "ptr", "long", "ptr"]],
|
|
"NtReadFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
|
|
"NtRegisterThreadTerminatePort" => ["long", ["long"]],
|
|
"NtReleaseSemaphore" => ["long", ["long", "long", "ptr"]],
|
|
"NtReplaceKey" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtReplyWaitReceivePort" => ["long", ["long", "long", "long", "long"]],
|
|
"NtRequestWaitReplyPort" => ["long", ["long", "long", "long"]],
|
|
"NtResetEvent" => ["long", ["long", "ptr"]],
|
|
"NtRestoreKey" => ["long", ["long", "long", "long"]],
|
|
"NtResumeThread" => ["long", ["long", "ptr"]],
|
|
"NtSaveKey" => ["long", ["long", "long"]],
|
|
"NtSetEvent" => ["long", ["long", "ptr"]],
|
|
"NtSetInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"NtSetInformationKey" => ["long", ["long", "long", "ptr", "long"]],
|
|
"NtSetInformationProcess" => ["long", ["long", "long", "ptr", "long"]],
|
|
"NtSetInformationThread" => ["long", ["long", "long", "ptr", "long"]],
|
|
"NtSetIntervalProfile" => ["long", ["long", "long"]],
|
|
"NtSetSecurityObject" => ["long", ["long", "long", "ptr"]],
|
|
"NtSetTimer" => ["long", ["long", "ptr", "ptr", "ptr", "long", "long", "ptr"]],
|
|
"NtSetValueKey" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
|
|
"NtSetVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"NtTerminateProcess" => ["long", ["long", "long"]],
|
|
"NtTerminateThread" => ["long", ["long", "long"]],
|
|
"NtUnloadKey" => ["long", ["long"]],
|
|
"NtWaitForSingleObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"NtWriteFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
|
|
"RtlAcquirePebLock" => ["void", []],
|
|
"RtlAcquireResourceExclusive" => ["long", ["ptr", "long"]],
|
|
"RtlAcquireResourceShared" => ["long", ["ptr", "long"]],
|
|
"RtlAddAccessAllowedAce" => ["long", ["ptr", "long", "long", "ptr"]],
|
|
"RtlAddAce" => ["long", ["ptr", "long", "long", "ptr", "long"]],
|
|
"RtlAdjustPrivilege" => ["long", ["long", "long", "long", "long"]],
|
|
"RtlAllocateAndInitializeSid" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
|
|
"RtlAllocateHeap" => ["ptr", ["long", "long", "long"]],
|
|
"RtlAnsiStringToUnicodeSize" => ["long", ["ptr"]],
|
|
"RtlAnsiStringToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlAppendAsciizToString" => ["long", ["ptr", "str"]],
|
|
"RtlAppendStringToString" => ["long", ["ptr", "ptr"]],
|
|
"RtlAppendUnicodeStringToString" => ["long", ["ptr", "ptr"]],
|
|
"RtlAppendUnicodeToString" => ["long", ["ptr", "wstr"]],
|
|
"RtlAreBitsClear" => ["long", ["ptr", "long", "long"]],
|
|
"RtlAreBitsSet" => ["long", ["ptr", "long", "long"]],
|
|
"RtlAssert" => ["void", ["ptr", "ptr", "long", "long"]],
|
|
"RtlClearAllBits" => ["void", ["ptr"]],
|
|
"RtlClearBits" => ["void", ["ptr", "long", "long"]],
|
|
"RtlCompactHeap" => ["long", ["long", "long"]],
|
|
"RtlCompareMemory" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlCompareString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlCompareUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlConvertLongToLargeInteger" => ["longlong", ["long"]],
|
|
"RtlConvertSidToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlConvertUlongToLargeInteger" => ["longlong", ["long"]],
|
|
"RtlCopySid" => ["long", ["long", "ptr", "ptr"]],
|
|
"RtlCopyString" => ["void", ["ptr", "ptr"]],
|
|
"RtlCopyUnicodeString" => ["void", ["ptr", "ptr"]],
|
|
"RtlCreateAcl" => ["long", ["ptr", "long", "long"]],
|
|
"RtlCreateEnvironment" => ["long", ["long", "long"]],
|
|
"RtlCreateHeap" => ["long", ["long", "ptr", "long", "long", "ptr", "ptr"]],
|
|
"RtlCreateSecurityDescriptor" => ["long", ["ptr", "long"]],
|
|
"RtlCreateUnicodeString" => ["long", ["ptr", "wstr"]],
|
|
"RtlCreateUnicodeStringFromAsciiz" => ["long", ["ptr", "str"]],
|
|
"RtlDeleteCriticalSection" => ["long", ["ptr"]],
|
|
"RtlDeleteResource" => ["void", ["ptr"]],
|
|
"RtlDeleteSecurityObject" => ["long", ["long"]],
|
|
"RtlDestroyEnvironment" => ["long", ["long"]],
|
|
"RtlDestroyHeap" => ["long", ["long"]],
|
|
"RtlDosPathNameToNtPathName_U" => ["long", ["wstr", "ptr", "long", "long"]],
|
|
"RtlDumpResource" => ["void", ["ptr"]],
|
|
"RtlEnlargedIntegerMultiply" => ["longlong", ["long", "long"]],
|
|
"RtlEnlargedUnsignedDivide" => ["long", ["long", "long", "long", "ptr"]],
|
|
"RtlEnlargedUnsignedMultiply" => ["longlong", ["long", "long"]],
|
|
"RtlEnterCriticalSection" => ["long", ["ptr"]],
|
|
"RtlEqualPrefixSid" => ["long", ["ptr", "ptr"]],
|
|
"RtlEqualSid" => ["long", ["ptr", "ptr"]],
|
|
"RtlEqualString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlEqualUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlEraseUnicodeString" => ["void", ["ptr"]],
|
|
"RtlExtendedIntegerMultiply" => ["longlong", ["long", "long", "long"]],
|
|
"RtlExtendedLargeIntegerDivide" => ["longlong", ["long", "long", "long", "ptr"]],
|
|
"RtlFillMemory" => ["void", ["ptr", "long", "long"]],
|
|
"RtlFillMemoryUlong" => ["void", ["ptr", "long", "long"]],
|
|
"RtlFindClearBits" => ["long", ["ptr", "long", "long"]],
|
|
"RtlFindClearBitsAndSet" => ["long", ["ptr", "long", "long"]],
|
|
"RtlFindClearRuns" => ["long", ["ptr", "ptr", "long", "long"]],
|
|
"RtlFindLastBackwardRunClear" => ["long", ["ptr", "long", "ptr"]],
|
|
"RtlFindLastBackwardRunSet" => ["long", ["ptr", "long", "ptr"]],
|
|
"RtlFindLeastSignificantBit" => ["long", ["long", "long"]],
|
|
"RtlFindLongestRunClear" => ["long", ["ptr", "ptr"]],
|
|
"RtlFindLongestRunSet" => ["long", ["ptr", "ptr"]],
|
|
"RtlFindMostSignificantBit" => ["long", ["long", "long"]],
|
|
"RtlFindNextForwardRunClear" => ["long", ["ptr", "long", "ptr"]],
|
|
"RtlFindNextForwardRunSet" => ["long", ["ptr", "long", "ptr"]],
|
|
"RtlFindSetBits" => ["long", ["ptr", "long", "long"]],
|
|
"RtlFindSetBitsAndClear" => ["long", ["ptr", "long", "long"]],
|
|
"RtlFindSetRuns" => ["long", ["ptr", "ptr", "long", "long"]],
|
|
"RtlFirstFreeAce" => ["long", ["ptr", "ptr"]],
|
|
"RtlFormatCurrentUserKeyPath" => ["long", ["ptr"]],
|
|
"RtlFreeAnsiString" => ["void", ["ptr"]],
|
|
"RtlFreeHeap" => ["long", ["long", "long", "ptr"]],
|
|
"RtlFreeOemString" => ["void", ["ptr"]],
|
|
"RtlFreeSid" => ["long", ["ptr"]],
|
|
"RtlFreeUnicodeString" => ["void", ["ptr"]],
|
|
"RtlGetAce" => ["long", ["ptr", "long", "ptr"]],
|
|
"RtlGetControlSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
|
|
"RtlGetDaclSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
|
|
"RtlGetGroupSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
|
|
"RtlGetLongestNtPathLength" => ["long", []],
|
|
"RtlGetNtProductType" => ["long", ["ptr"]],
|
|
"RtlGetNtVersionNumbers" => ["void", ["ptr", "ptr", "ptr"]],
|
|
"RtlGetOwnerSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
|
|
"RtlGetProcessHeaps" => ["long", ["long", "ptr"]],
|
|
"RtlGetSaclSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
|
|
"RtlIdentifierAuthoritySid" => ["ptr", ["ptr"]],
|
|
"RtlImageDirectoryEntryToData" => ["ptr", ["long", "long", "long", "ptr"]],
|
|
"RtlImageNtHeader" => ["ptr", ["long"]],
|
|
"RtlImageRvaToSection" => ["ptr", ["ptr", "long", "long"]],
|
|
"RtlImageRvaToVa" => ["ptr", ["ptr", "long", "long", "ptr"]],
|
|
"RtlImpersonateSelf" => ["long", ["long"]],
|
|
"RtlInitAnsiString" => ["void", ["ptr", "str"]],
|
|
"RtlInitString" => ["void", ["ptr", "str"]],
|
|
"RtlInitUnicodeString" => ["void", ["ptr", "wstr"]],
|
|
"RtlInitializeBitMap" => ["void", ["ptr", "ptr", "long"]],
|
|
"RtlInitializeCriticalSection" => ["long", ["ptr"]],
|
|
"RtlInitializeCriticalSectionAndSpinCount" => ["long", ["ptr", "long"]],
|
|
"RtlInitializeGenericTable" => ["long", []],
|
|
"RtlInitializeResource" => ["void", ["ptr"]],
|
|
"RtlInitializeSid" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlIntegerToChar" => ["long", ["long", "long", "long", "long"]],
|
|
"RtlIsTextUnicode" => ["long", ["ptr", "long", "ptr"]],
|
|
"RtlLargeIntegerAdd" => ["longlong", ["long", "long", "long", "long"]],
|
|
"RtlLargeIntegerArithmeticShift" => ["longlong", ["long", "long", "long"]],
|
|
"RtlLargeIntegerDivide" => ["longlong", ["long", "long", "long", "long", "ptr"]],
|
|
"RtlLargeIntegerNegate" => ["longlong", ["long", "long"]],
|
|
"RtlLargeIntegerShiftLeft" => ["longlong", ["long", "long", "long"]],
|
|
"RtlLargeIntegerShiftRight" => ["longlong", ["long", "long", "long"]],
|
|
"RtlLargeIntegerSubtract" => ["longlong", ["long", "long", "long", "long"]],
|
|
"RtlLeaveCriticalSection" => ["long", ["ptr"]],
|
|
"RtlLengthRequiredSid" => ["long", ["long"]],
|
|
"RtlLengthSecurityDescriptor" => ["long", ["ptr"]],
|
|
"RtlLengthSid" => ["long", ["ptr"]],
|
|
"RtlLockHeap" => ["long", ["long"]],
|
|
"RtlMakeSelfRelativeSD" => ["long", ["ptr", "ptr", "ptr"]],
|
|
"RtlMoveMemory" => ["void", ["ptr", "ptr", "long"]],
|
|
"RtlMultiByteToUnicodeN" => ["long", ["wstr", "long", "ptr", "str", "long"]],
|
|
"RtlMultiByteToUnicodeSize" => ["long", ["ptr", "str", "long"]],
|
|
"RtlNewSecurityObject" => ["long", ["long", "long", "long", "long", "long", "long"]],
|
|
"RtlNormalizeProcessParams" => ["ptr", ["ptr"]],
|
|
"RtlNtStatusToDosError" => ["long", ["long"]],
|
|
"RtlNumberOfClearBits" => ["long", ["ptr"]],
|
|
"RtlNumberOfSetBits" => ["long", ["ptr"]],
|
|
"RtlOemStringToUnicodeSize" => ["long", ["ptr"]],
|
|
"RtlOemStringToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlOemToUnicodeN" => ["long", ["wstr", "long", "ptr", "str", "long"]],
|
|
"RtlOpenCurrentUser" => ["long", ["long", "ptr"]],
|
|
"RtlPrefixString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlPrefixUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlQueryEnvironmentVariable_U" => ["long", ["long", "ptr", "ptr"]],
|
|
"RtlRaiseException" => ["void", ["ptr", "ptr"]],
|
|
"RtlRaiseStatus" => ["void", ["long"]],
|
|
"RtlReAllocateHeap" => ["ptr", ["long", "long", "ptr", "long"]],
|
|
"RtlReleasePebLock" => ["void", []],
|
|
"RtlReleaseResource" => ["void", ["ptr"]],
|
|
"RtlSecondsSince1970ToTime" => ["void", ["long", "ptr"]],
|
|
"RtlSecondsSince1980ToTime" => ["void", ["long", "ptr"]],
|
|
"RtlSetAllBits" => ["void", ["ptr"]],
|
|
"RtlSetBits" => ["void", ["ptr", "long", "long"]],
|
|
"RtlSetDaclSecurityDescriptor" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
"RtlSetEnvironmentVariable" => ["long", ["long", "ptr", "ptr"]],
|
|
"RtlSetGroupSecurityDescriptor" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlSetOwnerSecurityDescriptor" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlSetSaclSecurityDescriptor" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
"RtlSizeHeap" => ["long", ["long", "long", "ptr"]],
|
|
"RtlSubAuthorityCountSid" => ["ptr", ["ptr"]],
|
|
"RtlSubAuthoritySid" => ["ptr", ["ptr", "long"]],
|
|
"RtlSystemTimeToLocalTime" => ["void", ["ptr", "ptr"]],
|
|
"RtlTimeFieldsToTime" => ["long", ["ptr", "ptr"]],
|
|
"RtlTimeToElapsedTimeFields" => ["void", ["ptr", "ptr"]],
|
|
"RtlTimeToSecondsSince1970" => ["long", ["ptr", "ptr"]],
|
|
"RtlTimeToSecondsSince1980" => ["long", ["ptr", "ptr"]],
|
|
"RtlTimeToTimeFields" => ["void", ["ptr", "ptr"]],
|
|
"RtlTryEnterCriticalSection" => ["long", ["ptr"]],
|
|
"RtlUnicodeStringToAnsiSize" => ["long", ["ptr"]],
|
|
"RtlUnicodeStringToAnsiString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlUnicodeStringToOemSize" => ["long", ["ptr"]],
|
|
"RtlUnicodeStringToOemString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlUnicodeToMultiByteN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
|
|
"RtlUnicodeToMultiByteSize" => ["long", ["ptr", "wstr", "long"]],
|
|
"RtlUnicodeToOemN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
|
|
"RtlUnlockHeap" => ["long", ["long"]],
|
|
"RtlUnwind" => ["void", ["ptr", "ptr", "ptr", "long", "ptr"]],
|
|
"RtlUpcaseUnicodeString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlUpcaseUnicodeStringToAnsiString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlUpcaseUnicodeStringToOemString" => ["long", ["ptr", "ptr", "long"]],
|
|
"RtlUpcaseUnicodeToMultiByteN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
|
|
"RtlUpcaseUnicodeToOemN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
|
|
"RtlUpperString" => ["void", ["ptr", "ptr"]],
|
|
"RtlValidSecurityDescriptor" => ["long", ["ptr"]],
|
|
"RtlValidSid" => ["long", ["ptr"]],
|
|
"RtlValidateHeap" => ["long", ["long", "long", "ptr"]],
|
|
"RtlWalkHeap" => ["long", ["long", "ptr"]],
|
|
"RtlZeroMemory" => ["void", ["ptr", "long"]],
|
|
"RtlpUnWaitCriticalSection" => ["long", ["ptr"]],
|
|
"RtlpWaitForCriticalSection" => ["long", ["ptr"]],
|
|
"RtlxAnsiStringToUnicodeSize" => ["long", ["ptr"]],
|
|
"RtlxOemStringToUnicodeSize" => ["long", ["ptr"]],
|
|
"RtlxUnicodeStringToAnsiSize" => ["long", ["ptr"]],
|
|
"RtlxUnicodeStringToOemSize" => ["long", ["ptr"]],
|
|
"VerSetConditionMask" => ["longlong", ["long", "long", "long", "long"]],
|
|
"ZwAcceptConnectPort" => ["long", ["long", "long", "long", "long", "long", "long"]],
|
|
"ZwAdjustGroupsToken" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
|
|
"ZwCompleteConnectPort" => ["long", ["long"]],
|
|
"ZwConnectPort" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long"]],
|
|
"ZwCreateDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwCreateEvent" => ["long", ["ptr", "long", "ptr", "long", "long"]],
|
|
"ZwCreateKey" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "ptr"]],
|
|
"ZwCreateMailslotFile" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
|
|
"ZwCreatePagingFile" => ["long", ["ptr", "long", "long", "ptr"]],
|
|
"ZwCreatePort" => ["long", ["long", "long", "long", "long", "long"]],
|
|
"ZwCreateSection" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long", "long"]],
|
|
"ZwCreateTimer" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
"ZwDeleteKey" => ["long", ["long"]],
|
|
"ZwDeleteValueKey" => ["long", ["long", "ptr"]],
|
|
"ZwDeviceIoControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
|
|
"ZwDuplicateObject" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "long"]],
|
|
"ZwDuplicateToken" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
|
|
"ZwEnumerateKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
|
|
"ZwEnumerateValueKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
|
|
"ZwFlushKey" => ["long", ["long"]],
|
|
"ZwFsControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
|
|
"ZwListenPort" => ["long", ["long", "long"]],
|
|
"ZwLoadKey" => ["long", ["ptr", "ptr"]],
|
|
"ZwMapViewOfSection" => ["long", ["long", "long", "ptr", "long", "long", "ptr", "ptr", "long", "long", "long"]],
|
|
"ZwNotifyChangeKey" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "long", "ptr", "long", "long"]],
|
|
"ZwOpenDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwOpenEvent" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwOpenFile" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long"]],
|
|
"ZwOpenKey" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwOpenProcessToken" => ["long", ["long", "long", "ptr"]],
|
|
"ZwOpenSection" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwOpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
|
|
"ZwQueryDirectoryFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "long", "long", "ptr", "long"]],
|
|
"ZwQueryDirectoryObject" => ["long", ["long", "ptr", "long", "long", "long", "ptr", "ptr"]],
|
|
"ZwQueryInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"ZwQueryInformationProcess" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"ZwQueryInformationThread" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"ZwQueryInformationToken" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"ZwQueryKey" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"ZwQueryObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
"ZwQuerySystemInformation" => ["long", ["long", "ptr", "long", "ptr"]],
|
|
"ZwQuerySystemTime" => ["void", ["ptr"]],
|
|
"ZwQueryValueKey" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
|
|
"ZwQueryVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"ZwReadFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
|
|
"ZwRegisterThreadTerminatePort" => ["long", ["long"]],
|
|
"ZwReplaceKey" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwReplyWaitReceivePort" => ["long", ["long", "long", "long", "long"]],
|
|
"ZwRequestWaitReplyPort" => ["long", ["long", "long", "long"]],
|
|
"ZwRestoreKey" => ["long", ["long", "long", "long"]],
|
|
"ZwResumeThread" => ["long", ["long", "ptr"]],
|
|
"ZwSaveKey" => ["long", ["long", "long"]],
|
|
"ZwSetEvent" => ["long", ["long", "ptr"]],
|
|
"ZwSetInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"ZwSetInformationKey" => ["long", ["long", "long", "ptr", "long"]],
|
|
"ZwSetInformationProcess" => ["long", ["long", "long", "ptr", "long"]],
|
|
"ZwSetInformationThread" => ["long", ["long", "long", "ptr", "long"]],
|
|
"ZwSetIntervalProfile" => ["long", ["long", "long"]],
|
|
"ZwSetTimer" => ["long", ["long", "ptr", "ptr", "ptr", "long", "long", "ptr"]],
|
|
"ZwSetValueKey" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
|
|
"ZwSetVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
|
|
"ZwTerminateThread" => ["long", ["long", "long"]],
|
|
"ZwUnloadKey" => ["long", ["long"]],
|
|
"ZwWaitForSingleObject" => ["long", ["ptr", "long", "ptr"]],
|
|
"ZwWriteFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
|
|
"_alldiv" => ["longlong", ["long", "long", "long", "long"]],
|
|
"_allmul" => ["longlong", ["long", "long", "long", "long"]],
|
|
"_alloca_probe" => ["void", ["ptr"]],
|
|
"_allrem" => ["longlong", ["long", "long", "long", "long"]],
|
|
"_aulldiv" => ["longlong", ["long", "long", "long", "long"]],
|
|
"_aullrem" => ["longlong", ["long", "long", "long", "long"]],
|
|
"_chkstk" => ["void", ["ptr"]]
|
|
};
|
|
|
|
&wine::declare("ntdll",%$module_declarations);
|
|
push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
|
|
1;
|