Вызов GetHandleInformation перед любым вызовом CloseHandle
Факт 1: Из-за некоторых клиентских ограничений мы не можем использовать механизм исключения.
Факт 2: Закрытие ручки, которая уже была закрыта, вызывает исключение.
Не разбираясь в причинах упоминания фактов, буду звонить GetHandleInformation()
определить, действительно ли дескриптор все еще действителен, и только если он вызывает CloseHandle()
будет хорошим способом избежать такого исключения?
1 ответ
Решение
Вы не должны иметь доступ к закрытой ручке каким-либо образом, так как она может относиться к другой ручке из-за повторного использования ручки.
переработка дескриптора означает, что любой недействительный дескриптор может внезапно снова стать действительным (но относится к несвязанному объекту).