2012-03-15 2 views
1

У меня есть два процесса, один 32-битный, еще один 64-битный, и мне нужно дублировать некоторые ручки, которые используются другим процессом.DuplicateHandle 32/64 бит процессы

В x64 размер HANDLE достаточен для хранения 32-разрядного дескриптора, но когда я вызываю DuplicateHandle в процессе x86, нацеленном на x64, выполняется o.s. гарантирует, что результирующая ручка будет соответствовать 32-битовому типу HANDLE?

С уважением, Mauro.

ответ

2

Windows будет управлять им, его заявлено в docs для вызова;

DuplicateHandle можно использовать, чтобы дублировать дескриптор между с 32-битным процесса и 64-разрядного процесса. Результирующая ручка соответствует , размер которой зависит от заданного процесса.

+0

Да, но сомнение в следующем: у меня 32-разрядный дескриптор, а целевой процесс - 64-разрядный. Я хочу верить, что дублированный дескриптор, который я получаю в вызове x86 DuplicateHandle (целевой 64-битный процесс), соответствует 32-разрядному типу HANDLE. –

+0

Он работает в любом случае http://blogs.msdn.com/b/larryosterman/archive/2005/01/31/363881.aspx –

Смежные вопросы