Java kernel32.ReadFile错误(ByteBuffer无法转换为字节[])

Java kernel32.ReadFile错误(ByteBuffer无法转换为字节[]),java,Java,我试图用以下代码读取Java中的NamedPipe: ByteBuffer buffer = ByteBuffer.allocate(4*1024); IntByReference bytesRead = new IntByReference(buffer.capacity()); int lastError = 0; if (kernel32.PeekNamedPipe(pipeHandle, buffer, buffer.capacity(), bytesRead, null, null)

我试图用以下代码读取Java中的NamedPipe:

ByteBuffer buffer = ByteBuffer.allocate(4*1024);
IntByReference bytesRead = new IntByReference(buffer.capacity()); 
int lastError = 0;
if (kernel32.PeekNamedPipe(pipeHandle, buffer, buffer.capacity(), bytesRead, null, null))
        while ( !(kernel32.ReadFile(pipeHandle, /*(!)ERROR HERE==>*/buffer, buffer.capacity(), bytesRead, overlapped)) || (lastError=kernel32.GetLastError()) == Kernel32.ERROR_MORE_DATA){
                if (lastError == Kernel32.ERROR_PIPE_NOT_CONNECTED || overlapped.Internal.intValue() != WinNT.ERROR_IO_PENDING)
                        break;
                }

但由于以下错误而失败:
不兼容的类型:ByteBuffer无法转换为字节[]
。我试图用
byte[]b=新字节[buffer.remaining()]中的
b
替换
buffer
但程序开始工作错误。任何关于如何修复错误的想法都是受欢迎的。谢谢。

问题通过以下方式解决:

byte[] b = new byte[buffer.remaining()];
再次检查了返回的程序

谢谢大家