Definitions: Mono 1.9 Date Submitted: 3/25/2008 2:24:59 PM Comments: www.vahati.com ========================================= Pending issues: 1 [TODO] System.Runtime.CompilerServices.RuntimeHelpers::PrepareConstrainedRegions() Details: Currently a no-op 1 [TODO] System.Diagnostics.TraceListener::get_Attributes() Details: The property exists but the values are not considered 1 [TODO] System.Security.CodeAccessPermission::RevertAssert() Details: Imperative mode isn't supported 1 [TODO] System.Security.CodeAccessPermission::Assert() Details: Imperative mode isn't supported 4 [NIEX] Microsoft.Win32.RegistryKey::OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistryRights) 1 [TODO] System.Security.PermissionSet::Assert() Details: Imperative mode isn't supported 5 [NIEX] System.Threading.Thread::EndCriticalRegion() Details: Not implemented 1 [TODO] System.Security.PermissionSet::RevertAssert() Details: (2.0) what's it doing here? There's probably a reason this was added here. 5 [NIEX] System.Security.AccessControl.ObjectSecurity::WriteUnlock() Details: 5 [NIEX] System.Security.AccessControl.ObjectSecurity::WriteLock() Details: 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::RemoveAccessRuleSpecific(System.Security.AccessControl.AccessRule) 1 [TODO] System.Threading.Overlapped::Pack(System.Threading.IOCompletionCallback,System.Object) Details: handle userData 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::RemoveAccessRule(System.Security.AccessControl.AccessRule) 5 [NIEX] System.Threading.Thread::BeginCriticalRegion() Details: Not implemented 1 [TODO] System.Security.Cryptography.X509Certificates.X509Chain::.ctor(System.IntPtr) Details: Mono's X509Chain is fully managed. All handles are invalid. 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::GetAccessRules(System.Boolean,System.Boolean,System.Type) 5 [NIEX] System.Deployment.Internal.InternalActivationContextHelper::GetDeploymentComponentManifest(System.ActivationContext) Details: 5 [NIEX] System.Deployment.Internal.InternalActivationContextHelper::GetApplicationComponentManifest(System.ActivationContext) Details: 5 [NIEX] System.Security.AccessControl.ObjectSecurity::GetSecurityDescriptorBinaryForm() Details: 4 [NIEX] System.Security.Principal.SecurityIdentifier::.ctor(System.IntPtr) 1 [TODO] System.Security.Cryptography.Pkcs.SignedCms::Decode(System.Byte[]) Details: incomplete - missing attributes 1 [TODO] System.Security.Cryptography.Pkcs.SignedCms::CheckSignature(System.Boolean) Details: 4 [NIEX] System.Security.AccessControl.NativeObjectSecurity::Persist(System.String,System.Security.AccessControl.AccessControlSections) 4 [NIEX] System.Security.AccessControl.NativeObjectSecurity::Persist(System.Runtime.InteropServices.SafeHandle,System.Security.AccessControl.AccessControlSections) 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::SetAuditRule(System.Security.AccessControl.AuditRule) 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::SetAccessRule(System.Security.AccessControl.AccessRule) 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::ResetAccessRule(System.Security.AccessControl.AccessRule) 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::RemoveAuditRuleSpecific(System.Security.AccessControl.AuditRule) 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::RemoveAuditRuleAll(System.Security.AccessControl.AuditRule) 1 [TODO] System.Runtime.CompilerServices.RuntimeHelpers::ExecuteCodeWithGuaranteedCleanup(System.Runtime.CompilerServices.RuntimeHelpers/TryCode,System.Runtime.CompilerServices.RuntimeHelpers/CleanupCode,System.Object) Details: Currently a no-op 1 [TODO] System.Reflection.Emit.ILGenerator::EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]) Details: vararg methods are not supported 1 [TODO] System.Runtime.InteropServices.Marshal::GetHRForException(System.Exception) Details: SetErrorInfo 1 [TODO] System.Security.Cryptography.X509Certificates.X509Chain::Build(System.Security.Cryptography.X509Certificates.X509Certificate2) Details: Not totally RFC3280 compliant, but neither is MS implementation... 4 [NIEX] System.Security.AccessControl.CommonObjectSecurity::RemoveAuditRule(System.Security.AccessControl.AuditRule) **************************************************** P/Invokes made by this program Library: advapi32 bool CryptAcquireContext(SafeCspHandle&, string, string, CapiNative/ProviderType, CapiNative/CryptAcquireContextFlags) bool CryptContextAddRef(SafeCspHandle, IntPtr, int) bool CryptCreateHash(SafeCspHandle, CapiNative/AlgorithmId, SafeCapiKeyHandle, int, SafeCapiHashHandle&) bool CryptDecrypt(SafeCapiKeyHandle, SafeCapiHashHandle, bool, int, IntPtr, Int32&) bool CryptDestroyHash(IntPtr) bool CryptDestroyKey(IntPtr) bool CryptDuplicateKey(SafeCapiKeyHandle, IntPtr, int, SafeCapiKeyHandle&) bool CryptEncrypt(SafeCapiKeyHandle, SafeCapiHashHandle, bool, int, IntPtr, Int32&, int) bool CryptExportKey(SafeCapiKeyHandle, SafeCapiKeyHandle, int, int, Byte[], Int32&) bool CryptGenKey(SafeCspHandle, CapiNative/AlgorithmId, CapiNative/KeyFlags, SafeCapiKeyHandle&) bool CryptGenRandom(SafeCspHandle, int, Byte[]) bool CryptGetHashParam(SafeCapiHashHandle, CapiNative/HashParameter, Byte[], Int32&, int) bool CryptGetProvParam(SafeCspHandle, CapiNative/ProviderParameter, IntPtr, Int32&, CapiNative/ProviderParameterFlags) bool CryptHashData(SafeCapiHashHandle, Byte[], int, int) bool CryptImportKey(SafeCspHandle, Byte[], int, SafeCapiKeyHandle, CapiNative/KeyFlags, SafeCapiKeyHandle&) bool CryptReleaseContext(IntPtr, int) bool CryptSetKeyParam(SafeCapiKeyHandle, CapiNative/KeyParameter, Byte[], int) Library: advapi32.dll bool ImpersonateNamedPipeClient(SafePipeHandle) bool RevertToSelf() int EventUnregister(Int64) uint EventActivityIdControl(int, Guid&) uint EventRegister(Guid&, UnsafeNativeMethods/EtwEnableCallback, void*, Int64&) uint EventWrite(Int64, EventDescriptor&, uint, void*) uint EventWriteString(Int64, byte, Int64, Char*) uint EventWriteTransfer(Int64, EventDescriptor&, Guid&, Guid&, uint, void*) uint PerfDeleteInstance(SafePerfProviderHandle, UnsafeNativeMethods/PerfCounterSetInstanceStruct*) uint PerfSetCounterRefValue(SafePerfProviderHandle, UnsafeNativeMethods/PerfCounterSetInstanceStruct*, uint, void*) uint PerfSetCounterSetInfo(SafePerfProviderHandle, UnsafeNativeMethods/PerfCounterSetInfoStruct*, uint) uint PerfStartProvider(Guid&, UnsafeNativeMethods/PERFLIBREQUEST, SafePerfProviderHandle&) uint PerfStopProvider(IntPtr) UnsafeNativeMethods/PerfCounterSetInstanceStruct* PerfCreateInstance(SafePerfProviderHandle, Guid&, string, uint) Library: bcrypt BCryptNative/ErrorCode BCryptCloseAlgorithmProvider(IntPtr, int) BCryptNative/ErrorCode BCryptDestroyHash(IntPtr) Library: bcrypt.dll BCryptNative/ErrorCode BCryptCreateHash(SafeBCryptAlgorithmHandle, SafeBCryptHashHandle&, IntPtr, int, IntPtr, int, int) BCryptNative/ErrorCode BCryptFinishHash(SafeBCryptHashHandle, Byte[], int, int) BCryptNative/ErrorCode BCryptGetAlgorithmProperty(SafeBCryptAlgorithmHandle, string, Byte[], int, Int32&, int) BCryptNative/ErrorCode BCryptGetHashProperty(SafeBCryptHashHandle, string, Byte[], int, Int32&, int) BCryptNative/ErrorCode BCryptHashData(SafeBCryptHashHandle, Byte[], int, int) BCryptNative/ErrorCode BCryptOpenAlgorithmProvider(SafeBCryptAlgorithmHandle&, string, string, int) Library: kernel32 bool HeapFree(IntPtr, int, IntPtr) IntPtr GetProcessHeap() Library: kernel32.dll bool CloseHandle(IntPtr) bool ConnectNamedPipe(SafePipeHandle, IntPtr) bool ConnectNamedPipe(SafePipeHandle, NativeOverlapped*) bool CreatePipe(SafePipeHandle&, SafePipeHandle&, UnsafeNativeMethods/SECURITY_ATTRIBUTES, int) bool DisconnectNamedPipe(SafePipeHandle) bool DuplicateHandle(IntPtr, SafePipeHandle, IntPtr, SafePipeHandle&, uint, bool, uint) bool FlushFileBuffers(SafePipeHandle) bool FreeLibrary(IntPtr) bool GetFileMUIPath(int, string, StringBuilder, Int32&, StringBuilder, Int32&, Int64&) bool GetNamedPipeHandleState(SafePipeHandle, Int32&, IntPtr, IntPtr, IntPtr, IntPtr, int) bool GetNamedPipeHandleState(SafePipeHandle, IntPtr, Int32&, IntPtr, IntPtr, IntPtr, int) bool GetNamedPipeHandleState(SafePipeHandle, IntPtr, IntPtr, IntPtr, IntPtr, StringBuilder, int) bool GetNamedPipeInfo(SafePipeHandle, Int32&, IntPtr, IntPtr, IntPtr) bool GetNamedPipeInfo(SafePipeHandle, IntPtr, Int32&, IntPtr, IntPtr) bool GetNamedPipeInfo(SafePipeHandle, IntPtr, IntPtr, Int32&, IntPtr) bool SetNamedPipeHandleState(SafePipeHandle, Int32*, IntPtr, IntPtr) bool WaitNamedPipe(string, int) int FormatMessage(int, IntPtr, int, int, StringBuilder, int, IntPtr) int GetDynamicTimeZoneInformation(NativeMethods/DynamicTimeZoneInformation&) int GetFileType(SafeFileHandle) int GetFileType(SafePipeHandle) int GetTimeZoneInformation(NativeMethods/TimeZoneInformation&) int ReadFile(SafePipeHandle, Byte*, int, Int32&, IntPtr) int ReadFile(SafePipeHandle, Byte*, int, IntPtr, NativeOverlapped*) int SetErrorMode(int) int SetFilePointerWin32(SafeFileHandle, int, Int32*, int) int WriteFile(SafeFileHandle, Byte*, int, Int32&, NativeOverlapped*) int WriteFile(SafePipeHandle, Byte*, int, Int32&, IntPtr) int WriteFile(SafePipeHandle, Byte*, int, IntPtr, NativeOverlapped*) IntPtr GetCurrentProcess() SafeFileHandle CreateFile(string, int, FileShare, UnsafeNativeMethods/SECURITY_ATTRIBUTES, FileMode, int, IntPtr) SafeLibraryHandle LoadLibraryEx(string, IntPtr, int) SafePipeHandle CreateNamedPipe(string, int, int, int, int, int, int, UnsafeNativeMethods/SECURITY_ATTRIBUTES) SafePipeHandle CreateNamedPipeClient(string, int, FileShare, UnsafeNativeMethods/SECURITY_ATTRIBUTES, FileMode, int, IntPtr) Library: mscorwks int _AxlGetIssuerPublicKeyHash(IntPtr, SafeAxlBufferHandle&) int _AxlPublicKeyBlobToPublicKeyToken(CapiNative/CRYPTOAPI_BLOB&, SafeAxlBufferHandle&) int CertFreeAuthenticodeSignerInfo(X509Native/AXL_AUTHENTICODE_SIGNER_INFO&) int CertFreeAuthenticodeTimestamperInfo(X509Native/AXL_AUTHENTICODE_TIMESTAMPER_INFO&) int CertVerifyAuthenticodeLicense(CapiNative/CRYPTOAPI_BLOB&, X509Native/AxlVerificationFlags, X509Native/AXL_AUTHENTICODE_SIGNER_INFO&, X509Native/AXL_AUTHENTICODE_TIMESTAMPER_INFO&) Library: ncrypt.dll int NCryptFreeObject(IntPtr) NCryptNative/ErrorCode NCryptCreatePersistedKey(SafeNCryptProviderHandle, SafeNCryptKeyHandle&, string, string, int, CngKeyCreationOptions) NCryptNative/ErrorCode NCryptDeleteKey(SafeNCryptKeyHandle, int) NCryptNative/ErrorCode NCryptDeriveKey(SafeNCryptSecretHandle, string, NCryptNative/NCryptBufferDesc&, Byte[], int, Int32&, NCryptNative/SecretAgreementFlags) NCryptNative/ErrorCode NCryptExportKey(SafeNCryptKeyHandle, IntPtr, string, IntPtr, Byte[], int, Int32&, int) NCryptNative/ErrorCode NCryptFinalizeKey(SafeNCryptKeyHandle, int) NCryptNative/ErrorCode NCryptGetProperty(SafeNCryptHandle, string, Byte[], int, Int32&, CngPropertyOptions) NCryptNative/ErrorCode NCryptGetProperty(SafeNCryptHandle, string, IntPtr&, int, Int32&, CngPropertyOptions) NCryptNative/ErrorCode NCryptImportKey(SafeNCryptProviderHandle, IntPtr, string, IntPtr, SafeNCryptKeyHandle&, Byte[], int, int) NCryptNative/ErrorCode NCryptOpenKey(SafeNCryptProviderHandle, SafeNCryptKeyHandle&, string, int, CngKeyOpenOptions) NCryptNative/ErrorCode NCryptOpenStorageProvider(SafeNCryptProviderHandle&, string, int) NCryptNative/ErrorCode NCryptSecretAgreement(SafeNCryptKeyHandle, SafeNCryptKeyHandle, SafeNCryptSecretHandle&, int) NCryptNative/ErrorCode NCryptSetProperty(SafeNCryptHandle, string, Byte[], int, CngPropertyOptions) NCryptNative/ErrorCode NCryptSetProperty(SafeNCryptHandle, string, string, int, CngPropertyOptions) NCryptNative/ErrorCode NCryptSignHash(SafeNCryptKeyHandle, IntPtr, Byte[], int, Byte[], int, Int32&, int) NCryptNative/ErrorCode NCryptVerifySignature(SafeNCryptKeyHandle, IntPtr, Byte[], int, Byte[], int, int) Library: user32.dll int LoadString(SafeLibraryHandle, int, StringBuilder, int) Library: wevtapi.dll bool EvtArchiveExportedLog(EventLogHandle, string, int, int) bool EvtCancel(EventLogHandle) bool EvtClearLog(EventLogHandle, string, string, int) bool EvtClose(IntPtr) bool EvtExportLog(EventLogHandle, string, string, string, int) bool EvtFormatMessage(EventLogHandle, EventLogHandle, uint, int, UnsafeNativeMethods/EvtStringVariant[], UnsafeNativeMethods/EvtFormatMessageFlags, int, StringBuilder, Int32&) bool EvtFormatMessageBuffer(EventLogHandle, EventLogHandle, uint, int, IntPtr, UnsafeNativeMethods/EvtFormatMessageFlags, int, IntPtr, Int32&) bool EvtGetChannelConfigProperty(EventLogHandle, UnsafeNativeMethods/EvtChannelConfigPropertyId, int, int, IntPtr, Int32&) bool EvtGetEventInfo(EventLogHandle, UnsafeNativeMethods/EvtEventPropertyId, int, IntPtr, Int32&) bool EvtGetEventMetadataProperty(EventLogHandle, UnsafeNativeMethods/EvtEventMetadataPropertyId, int, int, IntPtr, Int32&) bool EvtGetLogInfo(EventLogHandle, UnsafeNativeMethods/EvtLogPropertyId, int, IntPtr, Int32&) bool EvtGetObjectArrayProperty(EventLogHandle, int, int, int, int, IntPtr, Int32&) bool EvtGetObjectArraySize(EventLogHandle, Int32&) bool EvtGetPublisherMetadataProperty(EventLogHandle, UnsafeNativeMethods/EvtPublisherMetadataPropertyId, int, int, IntPtr, Int32&) bool EvtGetQueryInfo(EventLogHandle, UnsafeNativeMethods/EvtQueryPropertyId, int, IntPtr, Int32&) bool EvtNext(EventLogHandle, int, IntPtr[], int, int, Int32&) bool EvtNextChannelPath(EventLogHandle, int, StringBuilder, Int32&) bool EvtNextPublisherId(EventLogHandle, int, StringBuilder, Int32&) bool EvtRender(EventLogHandle, EventLogHandle, UnsafeNativeMethods/EvtRenderFlags, int, IntPtr, Int32&, Int32&) bool EvtRender(EventLogHandle, EventLogHandle, UnsafeNativeMethods/EvtRenderFlags, int, StringBuilder, Int32&, Int32&) bool EvtSaveChannelConfig(EventLogHandle, int) bool EvtSeek(EventLogHandle, Int64, EventLogHandle, int, UnsafeNativeMethods/EvtSeekFlags) bool EvtSetChannelConfigProperty(EventLogHandle, UnsafeNativeMethods/EvtChannelConfigPropertyId, int, UnsafeNativeMethods/EvtVariant&) bool EvtUpdateBookmark(EventLogHandle, EventLogHandle) EventLogHandle EvtCreateBookmark(string) EventLogHandle EvtCreateRenderContext(int, String[], UnsafeNativeMethods/EvtRenderContextFlags) EventLogHandle EvtNextEventMetadata(EventLogHandle, int) EventLogHandle EvtOpenChannelConfig(EventLogHandle, string, int) EventLogHandle EvtOpenChannelEnum(EventLogHandle, int) EventLogHandle EvtOpenEventMetadataEnum(EventLogHandle, int) EventLogHandle EvtOpenLog(EventLogHandle, string, PathType) EventLogHandle EvtOpenPublisherEnum(EventLogHandle, int) EventLogHandle EvtOpenPublisherMetadata(EventLogHandle, string, string, int, int) EventLogHandle EvtOpenSession(UnsafeNativeMethods/EvtLoginClass, UnsafeNativeMethods/EvtRpcLogin&, int, int) EventLogHandle EvtQuery(EventLogHandle, string, string, int) EventLogHandle EvtSubscribe(EventLogHandle, SafeWaitHandle, string, string, EventLogHandle, IntPtr, IntPtr, int)