Problemas de subprocesos en la programación del kernel (controlador) de Windows
Para preguntas sobre el kernel, es mejor consultar la respuesta en el documento de ayuda de WDK. Esta es la información más autorizada proporcionada por Microsoft. La premisa es que comprenda la rutina PsCreateSystemThread para crear un subproceso del sistema que se ejecuta. modo kernel y proporcionar El hilo devuelve un identificador. Prototipo de función NTSTATUS PsCreateSystemThread(
OUT PHANDLE ThreadHandle,
IN ULONG DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPCIONAL,
IN HANDLE ProcessHandle OPCIONAL ,
OUT PCLIENT_ID ClientId OPCIONAL,
IN PKSTART_ROUTINE StartRoutine,
IN PVOID StartContext
ThreadHandle apunta a la variable que recibe. el mango. Una vez que la manija ya no esté en uso, el conductor debe cerrarla usando ZwClose. StartRoutine es el punto de entrada del subproceso del controlador. StartContext proporciona el único parámetro que se pasa al subproceso cuando se crea el subproceso. Cuando el controlador se inicializa o una solicitud de E/S ingresa a la rutina de despacho del controlador, el controlador llama a esta rutina para crear un subproceso independiente del dispositivo.