Как прочитать аудиодрайвер из реестра на уровне kernel mode

зубок александр
Дата: 06.07.2015 23:20:51
Пытаюсь использовать данную функцию - мне нужен драйвер по умолчанию под вин 81 - чтобы отправить из другого драйвера пакет через IoCallDriver.

Пытаюсь прочитать RtlQueryRegistryValues - параметр RelativeTo - ставлю константу которая определяет hklm/software/microsoft/windows/currentversion
Path - вертел как мог - все равно не читает правильно.

+ не ясно как конвертнуть правильно QueryTable в PDEVICE_OBJECT для IoCallDriver.
может кто сталкивался с такими задача - прошу помощи
mayton
Дата: 07.07.2015 00:13:04
зубок александр
все равно не читает правильно

Тут инфы маловато.
зубок александр
Дата: 07.07.2015 11:03:33
QueryTable = ExAllocatePoolWithTag(
		PagedPool,
		sizeof(RTL_QUERY_REGISTRY_TABLE)* 2,
		SERENUM_POOL_TAG
		);

QueryTable[0].QueryRoutine = NULL;
	QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
	// QueryTable[0].EntryContext = &commonData->DebugLevel;
	QueryTable[0].Name = L"DebugLevel";
	QueryTable[0].DefaultType = REG_SZ;	
	// QueryTable[0].DefaultData = SER_DEFAULT_DEBUG_OUTPUT_LEVEL;
	QueryTable[0].DefaultLength = sizeof(ULONG);

	MyTraceFunc(0, TRACE_LEVEL_INFORMATION, DBG_CONT_READER,
		"Before RtlQueryRegistryValues\n");

	// AudioEndpointBuilder

	NTSTATUS status = RtlQueryRegistryValues(
											RTL_REGISTRY_WINDOWS_NT,
											L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks",											
											QueryTable,
											NULL,
											NULL
		);



	

QueryTable[0].EntryContext - пустое - 0x0000000