Windows NT platformunda (XP-W7) çekirdek modundan kullanıcı modu işlemi oluşturmanın bir yolu var mı?Bir sürücüden işlem oluşturma
DÜZENLEME: Yalnızca sürücüyü yüklemeliyim. Bu projenin bir özelliğidir.
Windows NT platformunda (XP-W7) çekirdek modundan kullanıcı modu işlemi oluşturmanın bir yolu var mı?Bir sürücüden işlem oluşturma
DÜZENLEME: Yalnızca sürücüyü yüklemeliyim. Bu projenin bir özelliğidir.
Geçerli bir win32 işlemi oluşturmak için, sürücü CSRSS ile iletişim kurmalıdır (tamamen belgelenmemiş olan). Bu yüzden, bir kullanıcı modu APC'yi sıraya alıp varolan win32 işleminin bağlamında APC kodu için sanal bellek ayırarak sona erdim (bu kod CreateProcess'u arayacak ve işi yapacak).
Bu zor bir yol ama işe yarıyor.
Bunu başarmanın daha kolay bir yolunu bilmiyorum. Ancak, bir Windows hizmeti çalıştıran, sürücünüze çakışan bir DeviceIoControl yapan nedir? İade edildikten sonra servis, sürücüden aldığı verileri inceleyebilir ve uygulamaya göre başlatabilir.
Bunun doğru çözüm olduğunu söyleyebilirim. Bir hizmetten ters bir IRP verin, başlaması için kullanıcı modu işlemine ihtiyaç duyduğunda sürücünün tamamlanmasını sağlayın. –
Öneri için teşekkürler, ancak hizmetimi çalıştıramıyorum (Yalnızca hizmet kurulacak ve çekirdek modundan başlatılacaksa). –
@Sergius: Sürücüyü yine de yüklemelisiniz. Hizmeti aynı INF dosyasını kullanarak yükleyebilirsiniz. –
Bu işlem doğrudan gerçekleştirilemiyor - win32 işlemi oluşturmak, yalnızca çekirdek modunda işlem nesnesini oluşturmakla kalmayıp, CreateProcess kullanıcı modu tarafından bazı kurulumları gerektirir. Kullanıcı modu uygulamanızı başlatmak için buradan bir kullanıcı modu kodu (bir servis, bir masaüstü uygulaması veya benzeri) gerekir.
Kendi kullanıcı kipi kodumla bir kullanıcı aracını sürücüden bazı kullanıcı işlemlerine enjekte etmeyi düşünüyorum ... –
http://www.codeproject.com/KB/system/KernelExec.aspx adresine bakın. İlginç ... –