LONG WINAPI Mine_RegQueryInfoKeyW(HKEY a0, LPWSTR a1, LPDWORD a2, LPDWORD a3, LPDWORD a4, LPDWORD a5, LPDWORD a6, LPDWORD a7, LPDWORD a8, LPDWORD a9, LPDWORD a10, struct _FILETIME* a11) { if (CFilterMapper2::m_pFilterMapper2 && a0 == FAKEHKEY) { return ERROR_INVALID_HANDLE; } return Real_RegQueryInfoKeyW(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); }
LSTATUS APIENTRY RegTree::RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcchClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcbMaxSubKeyLen, LPDWORD lpcbMaxClassLen, LPDWORD lpcValues, LPDWORD lpcbMaxValueNameLen, LPDWORD lpcbMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime) { RegPath path; if (IsVirtualKey(hKey)) { RegNode *node = (RegNode*)((int)hKey & ~0x40000000); LoadRealChildren(node); if (lpClass != NULL) lpClass[0] = 0; if (lpcchClass != NULL) *lpcchClass = 0; if (lpcSubKeys != NULL) *lpcSubKeys = node->m_children.size(); if (lpcbMaxSubKeyLen != NULL) *lpcbMaxSubKeyLen = 255; if (lpcbMaxClassLen) *lpcbMaxClassLen = MAX_PATH; if (lpcValues != NULL) *lpcValues = 0; if (lpcbMaxValueNameLen != NULL) *lpcbMaxValueNameLen = 16383; if (lpcbMaxValueLen != NULL) *lpcbMaxValueLen = 0xFFFFFFFF; return ERROR_SUCCESS; } else return Real_RegQueryInfoKeyW(hKey, lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime); }