2014-11-20 4 views
-4

Мне нужно определить, был ли драйвер инициализирован в системе загрузки или системы ... и у меня есть переменная «DEVICE_OBJECT», чтобы получить эту информацию. Исследовали свойства «DEVICE_OBJECT» и «DRIVER_OBJECT», чтобы извлечь эту информацию без успеха. Есть ли у кого-нибудь советы о том, как это сделать?Тип запуска пуска Свойства

+0

Для начала вам понадобится дополнительная информация, чтобы получить полезную помощь, библиотеку обнаружения ОС, драйверов и драйверов. – IllusiveBrian

ответ

0
NTSTATUS 
IopInitializeDeviceNodeService(PDEVICE_NODE DeviceNode, BOOLEAN BootDriverOnly) 
{ 
    NTSTATUS Status; 
    ULONG ServiceStart; 
    RTL_QUERY_REGISTRY_TABLE QueryTable[2]; 

    if (DeviceNode->ServiceName.Buffer == NULL) 
    { 
     return STATUS_UNSUCCESSFUL; 
    } 

    /* 
    * Get service start value 
    */ 

    RtlZeroMemory(QueryTable, sizeof(QueryTable)); 
    QueryTable[0].Name = L"Start"; 
    QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT; 
    QueryTable[0].EntryContext = &ServiceStart; 
    Status = RtlQueryRegistryValues(RTL_REGISTRY_SERVICES, 
     DeviceNode->ServiceName.Buffer, QueryTable, NULL, NULL); 
    if (!NT_SUCCESS(Status)) 
    { 
     DPRINT("RtlQueryRegistryValues() failed (Status %x)\n", Status); 
     return Status; 
    } 
Смежные вопросы