def METHOD_NAME(self):
    h1, h2 = windows_utils.pipe(overlapped=(True, True))
    try:
        ov1 = _overlapped.Overlapped()
        self.assertFalse(ov1.pending)
        self.assertEqual(ov1.error, 0)
        ov1.ReadFile(h1, 100)
        self.assertTrue(ov1.pending)
        self.assertEqual(ov1.error, _winapi.ERROR_IO_PENDING)
        ERROR_IO_INCOMPLETE = 996
        try:
            ov1.getresult()
        except OSError as e:
            self.assertEqual(e.winerror, ERROR_IO_INCOMPLETE)
        else:
            raise RuntimeError('expected ERROR_IO_INCOMPLETE')
        ov2 = _overlapped.Overlapped()
        self.assertFalse(ov2.pending)
        self.assertEqual(ov2.error, 0)
        ov2.WriteFile(h2, b"hello")
        self.assertIn(ov2.error, {0, _winapi.ERROR_IO_PENDING})
        res = _winapi.WaitForMultipleObjects([ov2.event], False, 100)
        self.assertEqual(res, _winapi.WAIT_OBJECT_0)
        self.assertFalse(ov1.pending)
        self.assertEqual(ov1.error, ERROR_IO_INCOMPLETE)
        self.assertFalse(ov2.pending)
        self.assertIn(ov2.error, {0, _winapi.ERROR_IO_PENDING})
        self.assertEqual(ov1.getresult(), b"hello")
    finally:
        _winapi.CloseHandle(h1)
        _winapi.CloseHandle(h2)