ReadFile 函数 lpbuffer 和字节读取说明

ReadFile function lpbuffer and bytes to read clarifcation

我对此很陌生,如有任何说明,我们将不胜感激。使用函数ReadFile时,lpBuffer的类型如何与"number of bytes to read"的参数交互?

例如,如果您有一个无符号的 short MyShort[5] 作为 lpBuffer,然后将字节设置为 2,会怎样?所有数据都存储在 MyShort[0] 中吗?还是第一个字节进入 MyShort[0],第二个字节进入 MyShort[1]?当您将要读取的字节数增加到 9 时会发生什么? 16 位会进入 MyShort[0],然后 16 位进入 MyShort[1] 等等......?

谢谢

lpBuffer 始终被视为指向指定字节数 (nNumberOfBytesToRead) 的数组的指针。实际读取的字节数将存储在 lpNumberOfBytesRead 参数指向的变量中或稍后作为异步(重叠)结果。因此,在您的情况下,如果您请求读取 2 个字节,它可能会读取两个字节,将它们都存储在 MyShort[0] 中,或者只读取一个字节存储在 MyShort[0] 的下半部分,或者根本不读取任何字节。如果您请求读取 9 个字节,那么它将准备好 最多 9 个字节,依次存储 2 + 2 + 2 + 2 + 1 个字节。