MSDN говорит,
При записи в неблокирующем режиме байтов
дескриптор канала с недостаточным буферным пространством, WriteFile возвращает TRUE с * lpNumberOfBytesWritten
Для файла или сокета ( не труба ), может * lpNumberOfBytesWritten меньше, чем nNumberOfBytesToWrite (и результат TRUE), когда я вызываю функцию синхронно .
Если так, почему (и когда) соответствующий драйвер завершает IRP таким образом?
Когда я вижу код ниже, я всегда беспокоюсь о том, «что если * lpNumberOfBytesWritten
BOOL fOk = WriteFile(hFileOrSocket, ...); // Synchronously
if (fOk)
{
// It assumes everything is fine
}
Разве мне не нужно беспокоиться об этом?