是否存在返回INVALID_HANDLE_VALUE表示失败的Win32函数完整列表?
返回
INVALID_HANDLE_VALUE表示失败的Win32 API函数列表 Win32 API中部分返回句柄的函数在调用失败时,会返回INVALID_HANDLE_VALUE(值为(HANDLE)-1)而非NULL,以下是常见的这类函数(排除返回伪句柄的情况):
CreateFileA/CreateFileW:文件创建或打开失败时返回该值CreateFileMappingA/CreateFileMappingW:创建文件映射对象失败时返回OpenFileMappingA/OpenFileMappingW:打开已存在的文件映射对象失败时返回CreateMutexA/CreateMutexW:创建互斥量对象失败时返回CreateSemaphoreA/CreateSemaphoreW:创建信号量对象失败时返回CreateEventA/CreateEventW:创建事件对象失败时返回CreatePipe:创建匿名管道失败时,输出的句柄会被设为INVALID_HANDLE_VALUEFindFirstFileA/FindFirstFileW:首次查找文件或目录失败时返回FindFirstFileExA/FindFirstFileExW:扩展文件查找操作失败时返回CreateJobObjectA/CreateJobObjectW:创建作业对象失败时返回OpenJobObjectA/OpenJobObjectW:打开指定作业对象失败时返回CreateWaitableTimerA/CreateWaitableTimerW:创建可等待定时器失败时返回OpenWaitableTimerA/OpenWaitableTimerW:打开已存在的可等待定时器失败时返回
需要注意的是,判断这些函数调用是否失败时,必须严格将返回值与INVALID_HANDLE_VALUE进行比较,不能用NULL作为失败判断依据,否则会导致错误的结果。若对某个函数的返回值规则存疑,优先查阅该函数的官方文档确认。
内容的提问来源于stack exchange,提问作者fghzxm
相关产品推荐
相关产品推荐

