2002-01-21 18:36:35 +01:00
|
|
|
package advapi32;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
require Exporter;
|
|
|
|
|
|
|
|
use wine;
|
|
|
|
use vars qw(@ISA @EXPORT @EXPORT_OK);
|
|
|
|
|
|
|
|
@ISA = qw(Exporter);
|
|
|
|
@EXPORT = qw();
|
|
|
|
@EXPORT_OK = qw();
|
|
|
|
|
|
|
|
my $module_declarations = {
|
2002-04-27 02:19:41 +02:00
|
|
|
"AbortSystemShutdownA" => ["long", ["str"]],
|
|
|
|
"AbortSystemShutdownW" => ["long", ["wstr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"AccessCheck" => ["long", ["ptr", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"AddAccessAllowedAce" => ["long", ["ptr", "long", "long", "ptr"]],
|
|
|
|
"AdjustTokenPrivileges" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
|
|
|
|
"AllocateAndInitializeSid" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
|
|
|
|
"AllocateLocallyUniqueId" => ["long", ["ptr"]],
|
|
|
|
"BackupEventLogA" => ["long", ["long", "str"]],
|
|
|
|
"BackupEventLogW" => ["long", ["long", "wstr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"CheckTokenMembership" => ["long", ["long", "ptr", "ptr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"ClearEventLogA" => ["long", ["long", "str"]],
|
|
|
|
"ClearEventLogW" => ["long", ["long", "wstr"]],
|
|
|
|
"CloseEventLog" => ["long", ["long"]],
|
|
|
|
"CloseServiceHandle" => ["long", ["long"]],
|
|
|
|
"ControlService" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"CopySid" => ["long", ["long", "ptr", "ptr"]],
|
|
|
|
"CreateServiceA" => ["long", ["long", "str", "str", "long", "long", "long", "long", "str", "str", "ptr", "str", "str", "str"]],
|
|
|
|
"CreateServiceW" => ["long", ["long", "wstr", "wstr", "long", "long", "long", "long", "wstr", "wstr", "ptr", "wstr", "wstr", "wstr"]],
|
|
|
|
"CryptAcquireContextA" => ["long", ["ptr", "str", "str", "long", "long"]],
|
|
|
|
"CryptAcquireContextW" => ["long", ["ptr", "wstr", "wstr", "long", "long"]],
|
|
|
|
"CryptContextAddRef" => ["long", ["long", "ptr", "long"]],
|
|
|
|
"CryptCreateHash" => ["long", ["long", "long", "long", "long", "ptr"]],
|
|
|
|
"CryptDecrypt" => ["long", ["long", "long", "long", "long", "ptr", "ptr"]],
|
|
|
|
"CryptDeriveKey" => ["long", ["long", "long", "long", "long", "ptr"]],
|
|
|
|
"CryptDestroyHash" => ["long", ["long"]],
|
|
|
|
"CryptDestroyKey" => ["long", ["long"]],
|
|
|
|
"CryptDuplicateHash" => ["long", ["long", "ptr", "long", "ptr"]],
|
|
|
|
"CryptDuplicateKey" => ["long", ["long", "ptr", "long", "ptr"]],
|
|
|
|
"CryptEncrypt" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
|
|
|
|
"CryptEnumProviderTypesA" => ["long", ["long", "ptr", "long", "ptr", "str", "ptr"]],
|
|
|
|
"CryptEnumProviderTypesW" => ["long", ["long", "ptr", "long", "ptr", "wstr", "ptr"]],
|
|
|
|
"CryptEnumProvidersA" => ["long", ["long", "ptr", "long", "ptr", "str", "ptr"]],
|
|
|
|
"CryptEnumProvidersW" => ["long", ["long", "ptr", "long", "ptr", "wstr", "ptr"]],
|
|
|
|
"CryptExportKey" => ["long", ["long", "long", "long", "long", "ptr", "ptr"]],
|
|
|
|
"CryptGenKey" => ["long", ["long", "long", "long", "ptr"]],
|
|
|
|
"CryptGenRandom" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"CryptGetDefaultProviderA" => ["long", ["long", "ptr", "long", "str", "ptr"]],
|
|
|
|
"CryptGetDefaultProviderW" => ["long", ["long", "ptr", "long", "wstr", "ptr"]],
|
|
|
|
"CryptGetHashParam" => ["long", ["long", "long", "ptr", "ptr", "long"]],
|
|
|
|
"CryptGetKeyParam" => ["long", ["long", "long", "ptr", "ptr", "long"]],
|
|
|
|
"CryptGetProvParam" => ["long", ["long", "long", "ptr", "ptr", "long"]],
|
|
|
|
"CryptGetUserKey" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"CryptHashData" => ["long", ["long", "ptr", "long", "long"]],
|
|
|
|
"CryptHashSessionKey" => ["long", ["long", "long", "long"]],
|
|
|
|
"CryptImportKey" => ["long", ["long", "ptr", "long", "long", "long", "ptr"]],
|
|
|
|
"CryptReleaseContext" => ["long", ["long", "long"]],
|
|
|
|
"CryptSetHashParam" => ["long", ["long", "long", "ptr", "long"]],
|
|
|
|
"CryptSetKeyParam" => ["long", ["long", "long", "ptr", "long"]],
|
|
|
|
"CryptSetProvParam" => ["long", ["long", "long", "ptr", "long"]],
|
|
|
|
"CryptSetProviderA" => ["long", ["str", "long"]],
|
|
|
|
"CryptSetProviderExA" => ["long", ["str", "long", "ptr", "long"]],
|
|
|
|
"CryptSetProviderExW" => ["long", ["wstr", "long", "ptr", "long"]],
|
|
|
|
"CryptSetProviderW" => ["long", ["wstr", "long"]],
|
|
|
|
"CryptSignHashA" => ["long", ["long", "long", "str", "long", "ptr", "ptr"]],
|
|
|
|
"CryptSignHashW" => ["long", ["long", "long", "str", "long", "ptr", "ptr"]],
|
|
|
|
"CryptVerifySignatureA" => ["long", ["long", "ptr", "long", "long", "str", "long"]],
|
|
|
|
"CryptVerifySignatureW" => ["long", ["long", "ptr", "long", "long", "str", "long"]],
|
|
|
|
"DeleteService" => ["long", ["long"]],
|
|
|
|
"DeregisterEventSource" => ["long", ["long"]],
|
|
|
|
"EnumServicesStatusA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr", "ptr"]],
|
|
|
|
"EnumServicesStatusW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr", "ptr"]],
|
|
|
|
"EqualPrefixSid" => ["long", ["ptr", "ptr"]],
|
|
|
|
"EqualSid" => ["long", ["ptr", "ptr"]],
|
|
|
|
"FreeSid" => ["ptr", ["ptr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"GetAce" => ["long", ["ptr", "long", "ptr"]],
|
2002-07-20 22:06:58 +02:00
|
|
|
"GetCurrentHwProfileA" => ["long", ["ptr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"GetFileSecurityA" => ["long", ["str", "long", "ptr", "long", "ptr"]],
|
|
|
|
"GetFileSecurityW" => ["long", ["wstr", "long", "ptr", "long", "ptr"]],
|
|
|
|
"GetLengthSid" => ["long", ["ptr"]],
|
|
|
|
"GetNumberOfEventLogRecords" => ["long", ["long", "ptr"]],
|
|
|
|
"GetOldestEventLogRecord" => ["long", ["long", "ptr"]],
|
|
|
|
"GetSecurityDescriptorControl" => ["long", ["ptr", "ptr", "ptr"]],
|
|
|
|
"GetSecurityDescriptorDacl" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"GetSecurityDescriptorGroup" => ["long", ["ptr", "ptr", "ptr"]],
|
|
|
|
"GetSecurityDescriptorLength" => ["long", ["ptr"]],
|
|
|
|
"GetSecurityDescriptorOwner" => ["long", ["ptr", "ptr", "ptr"]],
|
|
|
|
"GetSecurityDescriptorSacl" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"GetSidIdentifierAuthority" => ["ptr", ["ptr"]],
|
|
|
|
"GetSidLengthRequired" => ["long", ["long"]],
|
|
|
|
"GetSidSubAuthority" => ["ptr", ["ptr", "long"]],
|
|
|
|
"GetSidSubAuthorityCount" => ["ptr", ["ptr"]],
|
|
|
|
"GetTokenInformation" => ["long", ["long", "long", "ptr", "long", "ptr"]],
|
|
|
|
"GetUserNameA" => ["long", ["str", "ptr"]],
|
|
|
|
"GetUserNameW" => ["long", ["wstr", "ptr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"ImpersonateLoggedOnUser" => ["long", ["long"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"ImpersonateSelf" => ["long", ["long"]],
|
|
|
|
"InitializeAcl" => ["long", ["ptr", "long", "long"]],
|
|
|
|
"InitializeSecurityDescriptor" => ["long", ["ptr", "long"]],
|
|
|
|
"InitializeSid" => ["long", ["ptr", "ptr", "long"]],
|
|
|
|
"IsValidSecurityDescriptor" => ["long", ["ptr"]],
|
|
|
|
"IsValidSid" => ["long", ["ptr"]],
|
|
|
|
"LookupAccountNameA" => ["long", ["str", "str", "ptr", "ptr", "str", "ptr", "ptr"]],
|
|
|
|
"LookupAccountSidA" => ["long", ["str", "ptr", "str", "ptr", "str", "ptr", "ptr"]],
|
|
|
|
"LookupAccountSidW" => ["long", ["wstr", "ptr", "wstr", "ptr", "wstr", "ptr", "ptr"]],
|
|
|
|
"LookupPrivilegeValueA" => ["long", ["str", "str", "ptr"]],
|
|
|
|
"LookupPrivilegeValueW" => ["long", ["wstr", "wstr", "ptr"]],
|
|
|
|
"LsaClose" => ["long", ["long"]],
|
|
|
|
"LsaFreeMemory" => ["long", ["ptr"]],
|
|
|
|
"LsaLookupSids" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
|
|
|
|
"LsaOpenPolicy" => ["long", ["ptr", "ptr", "long", "ptr"]],
|
|
|
|
"LsaQueryInformationPolicy" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"MakeSelfRelativeSD" => ["long", ["ptr", "ptr", "ptr"]],
|
|
|
|
"NotifyBootConfigStatus" => ["long", ["long"]],
|
|
|
|
"NotifyChangeEventLog" => ["long", ["long", "long"]],
|
|
|
|
"OpenBackupEventLogA" => ["long", ["str", "str"]],
|
|
|
|
"OpenBackupEventLogW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"OpenEventLogA" => ["long", ["str", "str"]],
|
|
|
|
"OpenEventLogW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"OpenProcessToken" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"OpenSCManagerA" => ["long", ["str", "str", "long"]],
|
|
|
|
"OpenSCManagerW" => ["long", ["wstr", "wstr", "long"]],
|
|
|
|
"OpenServiceA" => ["long", ["long", "str", "long"]],
|
|
|
|
"OpenServiceW" => ["long", ["long", "wstr", "long"]],
|
|
|
|
"OpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PrivilegeCheck" => ["long", ["long", "ptr", "ptr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"QueryServiceStatus" => ["long", ["long", "ptr"]],
|
|
|
|
"QueryWindows31FilesMigration" => ["long", ["long"]],
|
|
|
|
"ReadEventLogA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
|
|
|
|
"ReadEventLogW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
|
|
|
|
"RegCloseKey" => ["long", ["long"]],
|
|
|
|
"RegConnectRegistryA" => ["long", ["str", "long", "ptr"]],
|
|
|
|
"RegConnectRegistryW" => ["long", ["wstr", "long", "ptr"]],
|
|
|
|
"RegCreateKeyA" => ["long", ["long", "str", "ptr"]],
|
|
|
|
"RegCreateKeyExA" => ["long", ["long", "str", "long", "str", "long", "long", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegCreateKeyExW" => ["long", ["long", "wstr", "long", "wstr", "long", "long", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegCreateKeyW" => ["long", ["long", "wstr", "ptr"]],
|
|
|
|
"RegDeleteKeyA" => ["long", ["long", "str"]],
|
|
|
|
"RegDeleteKeyW" => ["long", ["long", "wstr"]],
|
|
|
|
"RegDeleteValueA" => ["long", ["long", "str"]],
|
|
|
|
"RegDeleteValueW" => ["long", ["long", "wstr"]],
|
|
|
|
"RegEnumKeyA" => ["long", ["long", "long", "str", "long"]],
|
|
|
|
"RegEnumKeyExA" => ["long", ["long", "long", "str", "ptr", "ptr", "str", "ptr", "ptr"]],
|
|
|
|
"RegEnumKeyExW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "wstr", "ptr", "ptr"]],
|
|
|
|
"RegEnumKeyW" => ["long", ["long", "long", "wstr", "long"]],
|
|
|
|
"RegEnumValueA" => ["long", ["long", "long", "str", "ptr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegEnumValueW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegFlushKey" => ["long", ["long"]],
|
|
|
|
"RegGetKeySecurity" => ["long", ["long", "long", "ptr", "ptr"]],
|
|
|
|
"RegLoadKeyA" => ["long", ["long", "str", "str"]],
|
|
|
|
"RegLoadKeyW" => ["long", ["long", "wstr", "wstr"]],
|
|
|
|
"RegNotifyChangeKeyValue" => ["long", ["long", "long", "long", "long", "long"]],
|
|
|
|
"RegOpenCurrentUser" => ["long", ["long", "ptr"]],
|
|
|
|
"RegOpenKeyA" => ["long", ["long", "str", "ptr"]],
|
|
|
|
"RegOpenKeyExA" => ["long", ["long", "str", "long", "long", "ptr"]],
|
|
|
|
"RegOpenKeyExW" => ["long", ["long", "wstr", "long", "long", "ptr"]],
|
|
|
|
"RegOpenKeyW" => ["long", ["long", "wstr", "ptr"]],
|
|
|
|
"RegQueryInfoKeyA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegQueryInfoKeyW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
|
2002-08-29 01:33:21 +02:00
|
|
|
"RegQueryMultipleValuesA" => ["long", ["long", "ptr", "long", "str", "ptr"]],
|
|
|
|
"RegQueryMultipleValuesW" => ["long", ["long", "ptr", "long", "wstr", "ptr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"RegQueryValueA" => ["long", ["long", "str", "str", "ptr"]],
|
|
|
|
"RegQueryValueExA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegQueryValueExW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"RegQueryValueW" => ["long", ["long", "wstr", "wstr", "ptr"]],
|
2002-08-29 01:33:21 +02:00
|
|
|
"RegReplaceKeyA" => ["long", ["long", "str", "str", "str"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"RegReplaceKeyW" => ["long", ["long", "wstr", "wstr", "wstr"]],
|
|
|
|
"RegRestoreKeyA" => ["long", ["long", "str", "long"]],
|
|
|
|
"RegRestoreKeyW" => ["long", ["long", "wstr", "long"]],
|
|
|
|
"RegSaveKeyA" => ["long", ["long", "str", "ptr"]],
|
|
|
|
"RegSaveKeyW" => ["long", ["long", "wstr", "ptr"]],
|
|
|
|
"RegSetKeySecurity" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"RegSetValueA" => ["long", ["long", "str", "long", "str", "long"]],
|
|
|
|
"RegSetValueExA" => ["long", ["long", "str", "long", "long", "ptr", "long"]],
|
|
|
|
"RegSetValueExW" => ["long", ["long", "wstr", "long", "long", "ptr", "long"]],
|
|
|
|
"RegSetValueW" => ["long", ["long", "wstr", "long", "wstr", "long"]],
|
|
|
|
"RegUnLoadKeyA" => ["long", ["long", "str"]],
|
|
|
|
"RegUnLoadKeyW" => ["long", ["long", "wstr"]],
|
|
|
|
"RegisterEventSourceA" => ["long", ["str", "str"]],
|
|
|
|
"RegisterEventSourceW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"RegisterServiceCtrlHandlerA" => ["long", ["str", "ptr"]],
|
|
|
|
"RegisterServiceCtrlHandlerW" => ["long", ["wstr", "ptr"]],
|
|
|
|
"ReportEventA" => ["long", ["long", "long", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
|
|
|
|
"ReportEventW" => ["long", ["long", "long", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
|
|
|
|
"RevertToSelf" => ["long", []],
|
|
|
|
"SetFileSecurityA" => ["long", ["str", "long", "ptr"]],
|
|
|
|
"SetFileSecurityW" => ["long", ["wstr", "long", "ptr"]],
|
|
|
|
"SetKernelObjectSecurity" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"SetSecurityDescriptorDacl" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
|
|
"SetSecurityDescriptorGroup" => ["long", ["ptr", "ptr", "long"]],
|
|
|
|
"SetSecurityDescriptorOwner" => ["long", ["ptr", "ptr", "long"]],
|
|
|
|
"SetSecurityDescriptorSacl" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
|
|
"SetServiceStatus" => ["long", ["long", "ptr"]],
|
|
|
|
"SetThreadToken" => ["long", ["ptr", "long"]],
|
2002-08-29 01:33:21 +02:00
|
|
|
"SetTokenInformation" => ["long", ["long", "long", "ptr", "long"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"StartServiceA" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"StartServiceCtrlDispatcherA" => ["long", ["ptr"]],
|
|
|
|
"StartServiceCtrlDispatcherW" => ["long", ["ptr"]],
|
|
|
|
"StartServiceW" => ["long", ["long", "long", "ptr"]],
|
|
|
|
"SynchronizeWindows31FilesAndWindowsNTRegistry" => ["long", ["long", "long", "long", "long"]]
|
|
|
|
};
|
|
|
|
|
|
|
|
&wine::declare("advapi32",%$module_declarations);
|
|
|
|
push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
|
|
|
|
1;
|