驱动程序启动类型属性

问题描述:

我需要检测驱动程序是否在启动或系统中初始化...并且我有变量“DEVICE_OBJECT”来获取此信息。研究了“DEVICE_OBJECT”和“DRIVER_OBJECT”的属性来提取这些信息而没有成功。有没有人有任何提示如何做?驱动程序启动类型属性

+0

您需要获得更多信息以获取有意义的帮助,操作系统,驱动程序和驱动程序检测库才能启动。 – IllusiveBrian 2014-11-20 17:46:17

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; 
    }