VirtualAlloc
은 운영 체제 파티션이 아닌 별도의 IDE 컨트롤러를 통해 하드 디스크의 일부 구성 (RAID, 임의 파티션)을 실행할 때 어떤 이유로 응용 프로그램에서 null
을 GetLastError
으로 반환합니다 코드는 ERROR_INVALID_PARAMETER
입니다.하드 디스크의 특정 구성에서 VirtualAlloc이 실패 함
깃발 (MEM_COMMIT | MEM_TOP_DOWN, PAGE_READWRITE)
을 제외하고 유일한 매개 변수는 디스크 형상에서 얻은 섹터 크기의 배수로 계산 된 크기입니다 (불행히도 NDA 등으로 인해 게시 코드가 없습니다).
누구나이 경험이 있는지 궁금하십니까? 또는 누군가가 급습이나 파티션의 일부인 디스크에서 페이지 크기를 다르게 처리하는 이유를 아는 사람이 있다면 어떤 도움을 주셔서 감사합니다!
이미 예약 된 블록을 커밋하려고 시도 할 때 블록을 예약 할 때 주소가 할당 단위의 배수로 반올림되었는지 여부를 확인하고 있습니까? 요청한 크기를 계산할 때 비정상적으로 많은 양의 메모리를 요청하는 것에 대해 어떤 보호 장치가 있습니까? –
오프셋은 섹터 크기의 세분화로 반올림되며이 오류를 방지하기 위해 체크인합니다. 그러나 많은 양의 메모리가 요청되는 것을 지키지 않는 것처럼 보입니다. 길이가 실패 할 때 – Stowelly
문제는 DeviceIoControl에있는 것처럼 보입니다. 주 하드 드라이브가 아닌 디스크의 경우 올바른 드라이브 형상, 아이디어를 반환하지 않습니다. – Stowelly