Необходимо подключить событие к onload обработчику iframe и выполнить js там, так, чтобы Вы удостоверились, что iframe закончил загружаться прежде, чем получить доступ к нему.
$().ready(function () {
$("#iframeID").ready(function () { //The function below executes once the iframe has finished loading
$('some selector', frames['nameOfMyIframe'].document).doStuff();
});
};
Вышеупомянутое решит 'еще загруженную' проблему, но в отношении полномочий при загрузке страницы в iframe, который является от различного домена, Вы не будете в состоянии получить доступ к нему из-за ограничений безопасности.
Для создания действительного процесса win32 драйвер должен общаться с CSRSS (что совершенно недокументировано). Поэтому я закончил тем, что поставил в очередь APC в пользовательском режиме и выделил виртуальную память для кода APC в контексте существующего процесса win32 (этот код вызовет CreateProcess и выполнит работу).
Это хитрый способ, но он работает.
Я не знаю более простого способа добиться этого. Но как насчет того, чтобы работала служба Windows, которая превращает перекрывающийся DeviceIoControl в ваш драйвер? По возвращении служба может проверить данные, полученные от драйвера, и запустить соответствующее приложение.
Это невозможно сделать напрямую - для создания процесса win32 требуется некоторая настройка в пользовательском режиме части CreateProcess, а не просто создание объекта процесса в режиме ядра.
Вам нужны некоторые здесь код пользовательского режима - служба, настольное приложение или т. д. для запуска вашего приложения в пользовательском режиме.