(一)SYSTEM_INFO
SYSTEM_INFO,Win32 API函数GetSystemInfo所使用的结构体。
1.说明
SYSTEM_INFO结构体包含了当前计算机的信息。这个信息包括计算机的体系结构、中央处理器的类型、系统中中央处理器的数量、页面的大小以及其他信息。
2.结构原型
typedef struct _SYSTEM_INFO { __C89_NAMELESS union { DWORD dwOemId; //过时已废弃 __C89_NAMELESS struct { WORD wProcessorArchitecture; //处理器架构 WORD wReserved; } DUMMYSTRUCTNAME; } DUMMYUNIONNAME; DWORD dwPageSize; //指定页面的大小和页面保护和委托的颗粒。 LPVOID lpMinimumApplicationAddress; //应用程序最小地址 LPVOID lpMaximumApplicationAddress; //应用程序最大地址 DWORD_PTR dwActiveProcessorMask; //处理器掩码 DWORD dwNumberOfProcessors; //处理器数量 DWORD dwProcessorType; //处理器类型 DWORD dwAllocationGranularity; //虚拟内存分配粒度 WORD wProcessorLevel; //处理器级别 WORD wProcessorRevision; //处理器版本 } SYSTEM_INFO, *LPSYSTEM_INFO;
3.代码示例
void CTestDlg::GetSysInfo() { SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); }
GetSystemInfo函数用于获取当前系统的信息
(二)CreateSemaphore
1.说明
CreateSemaphore 是创建信号量
2.函数原型
#define CreateSemaphore __MINGW_NAME_AW(CreateSemaphore) WINBASEAPI HANDLE WINAPI CreateSemaphoreW ( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCWSTR lpName);
lpSemaphoreAttributes 是信号量的安全属性。
指向SECURITY_ATTRIBUTES结构的指针。如果此参数为NULL,则子进程无法继承句柄。
lInitialCount 是初始化的信号量。
信号量对象的初始计数。该值必须大于或等于零且小于或等于lMaximumCount。信号量的状态在其计数大于零时发出信号,在信号为零时发出信号。只要wait函数释放等待信号量的线程,计数就会减1。通过调用ReleaseSemaphore函数将计数增加指定的量。
lMaximumCount 是允许信号量增加到最大值。
信号量对象的最大计数。该值必须大于零。
lpName 是信号量的名称。
信号量对象的名称。名称仅限于MAX_PATH个字符。名称比较区分大小写。
如果lpName为NULL,则创建没有名称的信号量对象。
返回值
如果函数成功,则返回值是信号量对象的句柄。如果在函数调用之前存在命名的信号量对象,则该函数返回现有对象的句柄,GetLastError返回ERROR_ALREADY_EXISTS。
如果函数失败,则返回值为NULL。要获取扩展错误信息,请调用GetLastError。
3.代码示例
m_hSemaphore = ::CreateSemaphore(NULL, lInitialCount, lMaximumCount, NULL); if (m_hSemaphore == NULL) // 如果函数失败,则返回值为NULL。 { return false; }
标签:INFO,函数,SYSTEM,信号量,Semaphore,DWORD,NULL From: https://www.cnblogs.com/imreW/p/17156531.html