Files
TransPyC/includes/w32/win32sync.vp
T
TermiNexus a641c7c8da test(w32): 204 个 t.State 声明函数改用 extern 语法
- win32base/console/file/memory/process/sync/winsock2 七个模块
- def X(...) -> T | t.State: pass → extern def X(...) -> T: pass
- 转换后 vast AST dump 与原声明完全一致(extern 改写 returns 为
  <原类型> | t.State,语义等价),用于 extern 关键字编译测试
2026-08-17 10:49:39 +08:00

66 lines
4.4 KiB
Plaintext

import t
from stdint import *
from w32.win32base import *
class CRITICAL_SECTION():
DebugInfo: VOIDPTR
LockCount: LONG
RecursionCount: LONG
OwningThread: HANDLE
LockSemaphore: HANDLE
SpinCount: QWORD
extern def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
extern def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
extern def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
extern def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID: pass
extern def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL: pass
extern def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG: pass
extern def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL: pass
extern def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE: pass
extern def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE: pass
extern def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE: pass
extern def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE: pass
extern def ReleaseMutex(hMutex: HANDLE) -> BOOL: pass
extern def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE: pass
extern def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE: pass
extern def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE: pass
extern def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE: pass
extern def SetEvent(hEvent: HANDLE) -> BOOL: pass
extern def ResetEvent(hEvent: HANDLE) -> BOOL: pass
extern def PulseEvent(hEvent: HANDLE) -> BOOL: pass
extern def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE: pass
extern def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE: pass
extern def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE: pass
extern def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE: pass
extern def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL: pass
extern def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG: pass
extern def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG: pass
extern def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG: pass
extern def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG: pass
extern def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID: pass
extern def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID: pass
extern def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID: pass
extern def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID: pass
extern def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID: pass
# 条件变量 (Condition Variables) - Vista+
CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1
extern def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID: pass
extern def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL: pass
extern def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL: pass
extern def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID: pass
extern def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID: pass
# 一次性初始化 (One-Time Initialization) - Vista+
INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001
INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002
INIT_ONCE_ASYNC: t.CDefine = 0x00000004
INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008
class INIT_ONCE:
Ptr: t.CPtr
extern def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL: pass