Restart Manager 세션을 시작한 코드가 있는데 몇 개의 파일로 RmRegisterResources을 호출하고 RmGetList을 호출하면 ERROR_ACCESS_DENIED (5)가 반환됩니다 ... 그러나 50ms 동안 수면을 추가하고 다시 시도하면 ... 어떻게 작동합니까? 어떤 생각? RmGetList를 성공적으로 호출하기 위해 수면 이외의 것이 있습니까?Windows 재시작 관리자의 RmGetList가 ERROR_ACCESS_DENIED를 반환합니다. 그 이유는 무엇입니까?
3
A
답변
0
"작동 여부"는 무엇을 의미합니까? "액세스가 거부되었습니다"라는 파일을 보았습니다. RmGetList에 대한 첫 번째 호출은 변경되지 않은 인수 5 개를 반환했습니다. 두 번째 호출 사이에 잠자기가 없어도 pnProcInfoNeeded, pnProcInfo 및 lpdwRebootReasons를 0으로 설정하면서 0을 반환했습니다. 따라서 흥미로운 정보를 얻지 못하는 것 같습니다 ...
버그 또는 적어도 문서화되지 않은 기능처럼 보입니다.
왜 당신은 그 수면이 필요한지 알아낼 수 있었습니까? Sleep은 그것을 해결하지 못했지만 반환 값은 5입니다. – Noitidart
하나 이상의 등록 된 리소스가 * file * 대신 * directory *를 참조하면 'ERROR_ACCESS_DENIED'가 발생한다는 것을 알았습니다. (잠자는 것은 분명히 영향을 미치지 않습니다. 이것이 대답이 아닌 주석이기 때문입니다.) –