PC에 연결된 PCI 카드가 있으며이를위한 GUI가 있습니다. 우리는 PCI 카드에서 읽기/쓰기 (FPGA가 PCI 카드에서 읽기/쓰기 작업을 수행)하기 위해 RAM에 약 400 - 600 MB의 실제 메모리의 DMA 버퍼를 할당하려고합니다. 우리는 JUNGO windows PCI 드라이버를 사용하고 있습니다. JUNGO가 제공하는 WDC_DMAContigBufLock 메소드는 연속 또는 분산/수집 메소드를 통해 DMA 버퍼를 할당합니다. 우리는 RAM에 최대 63MB의 버퍼를 생성 할 수 있었고 63MB 이상을 생성 할 수 없었습니다. 운영 체제는 Windows XP 32 비트이고 RAM 크기는 4GB입니다 (상대적으로 3GB는 무료).Windows XP에서 500MB의 DMA 버퍼를 할당하는 방법
응용 프로그램 (GUI)은 C# .Net으로 작성되었으며 400 - 600MB의 DMA 버퍼를 만들려고하면이 응용 프로그램을 통해 이루어집니다. 나는 해결책을 찾고 있는데/아이디어는 무엇을 일으키는 원인이 될 수 있습니까/나를 멈추어서 400 - 600MB의 버퍼 크기를 만들 수 있습니다.
감사
안녕 한스, 답장을 보내 주셔서 감사합니다! 레지스트리에서 페이징되지 않은 메모리 풀을 늘리기 전에 30MB의 버퍼 만 할당 할 수있었습니다. Jungo는 500MB의 메모리를 만들 수는 있지만 내 편에서는 할 수 없다고 전합니다. Jungo API를 사용하지 않고 버퍼를 생성 할 수있는 방법이 있습니까? – Venu
당신은이 대답의 요점을 심각하게 놓치고 있습니다. 이를 해결할 수있는 유일한 방법은 스스로를 교육하고 Windows Internals 사본을 가져 와서 커널 메모리 풀에 대해 이야기하는 장을 읽는 것입니다. –