Описание тега safehandle
2
ответа
Как я могу предотвратить инкапсуляцию одного и того же неуправляемого указателя в два разных SafeHandles?
Я пишу управляемую оболочку для игрового движка, написанного на C, чтобы испытать себя. Я начал оборачивать неуправляемые указатели в SafeHandle производные, но это на меня возложило, что вызовы неуправляемых функций, которые могут вернуть тот же ук…
23 янв '18 в 00:55
0
ответов
Что использовать вместо SafeHandle.DangerousGetHandle?
Я смотрел на мой SonarQube статический анализ кода и наткнулся на отчет, который говорит, что с помощью вызова метода SafeTokenHandle DangerousGetHandle. Я начинаю с объявления SafeTokenHandle: SafeTokenHandle safeTokenHandle; var returnValue = Logo…
20 авг '18 в 16:06
0
ответов
SafeHandle против IntPtr в WinAPI и CloseHandle в C#
Я прочитал много статей о SafeHandle а также IDiposable но я все еще не понимаю, должен ли я использовать SafeHandle и CloseHandle или нет в C#. Пример MSDN SafeHandle IntPtr, SafeHandle и HandleRef - Объяснено https://blog.benoitblanchon.fr/safehan…
08 ноя '18 в 09:26
1
ответ
Надежная ручка закрыта - множество вариантов исправлений
У меня есть частная функция, которая создает новый последовательный порт и открывает его. Время от времени я получаю исключение "Безопасный дескриптор закрыт", которое завершает работу приложения. Теперь я прочитал несколько дополнительных исправлен…
10 сен '17 в 09:03
1
ответ
ObjectDisposedException - DangerousAddRef
Я получил довольно сложное консольное приложение.net, которое использует WPF для некоторых окон уведомлений, а также выполняет http-вызовы. В очень редких случаях происходит сбой приложения, и единственное сообщение об ошибке, которое я могу получит…
23 май '16 в 08:40
4
ответа
ObjectDisposedException: безопасный дескриптор был закрыт
Так что это довольно маленький вопрос с большим объяснением. Как видно из названия, я получаю необработанное исключение, сообщающее, что моя безопасная ручка закрыта. Вероятно, мне придется несколько раз отредактировать этот пост, добавляя все больш…
20 дек '13 в 17:11
1
ответ
После использования FileStream.SafeFileHandle безопасно ли мне удалять вызов GC.KeepAlive()?
Рассмотрим следующий код, который я недавно изменил, чтобы использовать FileStream.SafeFileHandle: public static void FastWrite<T>(FileStream fs, T[] array, int offset, int count) where T: struct { int sizeOfT = Marshal.SizeOf(typeof(T)); GCHa…
30 апр '13 в 09:49
2
ответа
Какова цель invalidHandleValue в SafeHandle?
SafeHandle конструктор принимает invalidHandleValue, Для чего он используется, если вам нужно реализовать IsInvalid тем не мение потому что он понятия не имеет, какая переменная-член содержит указатель [Я не знал, что реализовал handle переменная-чл…
15 июл '13 в 00:35
1
ответ
Безопасные дескрипторы при маршалинге структур Win32 (PROCESS_INFORMATION)
Я нахожусь в процессе преобразования моего кода Win32 p/invoke для использования SafeHandle классы вместо типичного IntPtr ручки. Хотя все работает довольно хорошо DllImport подписи методов, я не могу на всю жизнь заставить их работать при маршалинг…
09 янв '16 в 05:27
2
ответа
Ошибка: SafeHandle или CriticalHandle типа ZLibStreamHandle не удалось правильно освободить
Я не очень много работал с потоками, поэтому я предполагаю, что здесь, с моей стороны, где-то есть ошибка кодирования. public static SqlBytes Compress(SqlBytes input) { byte[] data = (byte[])input.Value; using (MemoryStream memstream = new MemoryStr…
18 апр '16 в 20:29
0
ответов
Взаимодействие, перекрытие ввода / вывода, ручки: использовать SafeHandle или пин?
Когда вы передаете неуправляемый дескриптор (хранящийся в IntPtr или SafeHandle на управляемой стороне) от управляемого к неуправляемому коду для выполнения перекрывающихся операций ввода-вывода, каков правильный подход? используйте SafeHandle, чтоб…
10 мар '17 в 10:51
1
ответ
Не удается передать экземпляр SafeHandle в ReleaseHandle нативному методу
Я только недавно узнал о SafeHandle и, для теста, я реализовал это для библиотеки SDL2, создав и уничтожив окно: [DllImport(_libName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr SDL_CreateWindow( [MarshalAs(UnmanagedT…
21 дек '17 в 23:51
0
ответов
P/Invoke с SafeHandle в качестве опорного параметра
У меня есть функция в неуправляемой Dll, которая ожидает указатель на дескриптор, как в этом примере: extern "C" __declspec(dllexport) BOOL __stdcall MySetEvent(HANDLE* handle, int size) { if (!handle) return FALSE; assert(sizeof(*handle) == size); …
03 май '18 в 08:41
1
ответ
Какие разновидности IntPtr являются кандидатами на участие в SafeHandle?
Я получаю CA2006 ("Review usage of ... (a 'IntPtr' instance) to determine whether it should be replaced with a SafeHandle or CriticalHandle") для IntPtr вернулся из ConvertStringSecurityDescriptorToSecurityDescriptor я знаю, что это дескриптор безоп…
12 июн '17 в 16:49
0
ответов
C# SFTP Безопасная ручка закрыта
Я только что получил Безопасный дескриптор был закрыт с моим SFTP-кодом, и я впервые вижу эту ошибку. В нем говорится, что ошибка происходит в строке 74, которая содержит этот блок sftp.Connect(); Мой код для этого заключается в том, что эта ошибка …
01 мар '18 в 19:54
1
ответ
Как правильно избавиться от пинвока / неуправляемого кода
У меня есть код, который должен вызывать ac dll, мне кажется, что этот код должен реализовывать idisposible, поскольку он касается неуправляемого кода. Я могу ошибаться, поэтому, пожалуйста, поправьте меня, если это не так. Читая о вещах, кажется, ч…
01 май '15 в 18:07
1
ответ
Ограничения против абстрактного класса с использованием SafeHandle
В BCryptNative есть метод GetInt32Property. Имеет следующую подпись: internal static int GetInt32Property<T>(T algorithm, string property) where T : SafeHandle Этот метод работает, только когда T имеет тип SafeBCryptAlgorithmHandle или SafeBCr…
24 сен '15 в 00:36
1
ответ
Работа с SafeHandles в F#
Я работаю с некоторым кодом F#, который использует вызов платформы. Один из используемых мной API возвращает дескриптор. Вместо использования nativeint Я реализовал свой собственный SafeHandle (в частности, SafeHandleMinusOneIsInvalid.) Это делает р…
28 июл '14 в 21:02
0
ответов
Финализатор GC создает исключение ObjectDisposedException в SafeHandle.cs
GC FinalizerThread генерирует исключение ObjectDisposedException внутри SafeHandle.Dispose(...) в строке 263. У меня есть pdb для mscorlib.dll, и в сети можно увидеть исходный код SafeHandle.cs, но я не вижу способа выяснить, в каком объекте возникл…
25 авг '18 в 16:24
1
ответ
Есть ли у Marshal.Release() неявный элемент ReliabilityContract?
Я пишу приложение.NET, где я должен использовать вызовы API (на самом деле). Мое приложение получает интерфейсы COM, вызывая функцию Win API CoCreateInstance(), Конечно, я должен освободить эти интерфейсы, когда закончу с ними. Я думаю, что подходящ…
08 фев '17 в 16:14