0, 'GetCurrentProcessId() failed'); requireWindowsCondition(windows_has_module_handle(), 'GetModuleHandleW() failed'); requireWindowsCondition(windows_logical_processor_count() > 0, 'GetNativeSystemInfo() returned no processors'); $path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'typephp-windows-smoke-' . windows_current_process_id() . '.txt'; requireWindowsCondition(file_put_contents($path, 'windows-file-api') === 16, 'Windows file write failed'); requireWindowsCondition(file_get_contents($path) === 'windows-file-api', 'Windows file read failed'); requireWindowsCondition(unlink($path), 'Windows file cleanup failed'); if ($argc === 3) { requireWindowsCondition($argv[2] === 'nano', 'Unexpected Windows smoke mode'); $blockedFunction = 'exec'; call_user_func($blockedFunction, 'echo typephp-nano-policy-bypass'); requireWindowsCondition(false, 'Nano dynamic call reached exec()'); } echo 'windows-smoke-ok:', $expectedZts ? 'zts' : 'nts'; }