Этот день был для меня крутым курсом с точки зрения ручек, безопасных ручек, PInvoke и многих других вещей. Я думаю, что он медленно погружается, но я все еще борюсь с несколькими понятиями:Какую реализацию SafeHandle следует использовать для обработки ручек?
Как узнать, какую реализацию SafeHandle я должен использовать с разными типами дескрипторов?
В частности, то, что реализация SafeHandle следует использовать с технологическими ручками (например, те, в PROCESS_INFORMATION
структуре возвращается из вызова CreateProcess
Единственные два открытых реализаций, которые я могу видеть это SafeFileHandle
и SafeWaitHandle
? - ни один из них не кажется, уместно в данном случае.
Что я должен использовать?
Мне нужно передать дескриптор к сокету дочернему процессу, поскольку StdIn - класс 'Process', очевидно, не позволит мне это сделать! Кроме того, класс процесса имеет проблему с переменными окружения, которые имеют более низкий регистр в версиях .Net до версии 4.0 (также я хочу понять, как все это работает) – Justin
Erm, так что вы на самом деле говорите о дескрипторе сокета? Вы не можете перенаправлять процесс ввода-вывода через сокеты btw, для которого требуются каналы. Не уверен, что вы пытаетесь сделать. –
Я собирался пойти на реализацию FastCGI в .Net (http://www.fastcgi.com/devkit/doc/fcgi-spec.html) - насколько я могу судить, дескриптор, переданный в StdIn, может быть обращайтесь к сокету (хотя весь этот раздел меня немного смутил - мой подход собирался попробовать и посмотреть, что произойдет!) – Justin