// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! ApiSet Contract for api-ms-win-core-synch-l1
use shared::basetsd::SIZE_T;
use shared::minwindef::{BOOL, DWORD, LPLONG, LPVOID, PBOOL, ULONG};
use um::minwinbase::{
LPCRITICAL_SECTION, LPSECURITY_ATTRIBUTES, PCRITICAL_SECTION, PREASON_CONTEXT,
};
use um::winnt::{
BOOLEAN, HANDLE, LARGE_INTEGER, LONG, LPCSTR, LPCWSTR, PRTL_BARRIER, PRTL_RUN_ONCE,
PVOID, RTL_BARRIER, RTL_CONDITION_VARIABLE, RTL_CONDITION_VARIABLE_INIT,
RTL_RUN_ONCE, RTL_SRWLOCK, RTL_SRWLOCK_INIT, VOID
};
pub const SRWLOCK_INIT: SRWLOCK =/ <LICENSE-MIT or http:
//opensource.org/licenses/MIT>, at your option.
pub type SRWLOCK = RTL_SRWLOCK
// except according to those terms.
pub use shared:basetsd:SIZE_T;
extern "system" {
pub fn InitializeSRWLock(
SRWLock: PSRWLOCK,
);
pub fn ReleaseSRWLockExclusive(
SRWLock: PSRWLOCK,
);
pub fn ReleaseSRWLockShared(
SRWLock: PSRWLOCK,
);
pub fn AcquireSRWLockExclusive(
SRWLock: PSRWLOCK,
);
pub fn AcquireSRWLockShared(
SRWLock: PSRWLOCK,
);
pub fn TryAcquireSRWLockExclusive(
SRWLock: PSRWLOCK,
) -> BOOLEAN;
pub fn TryAcquireSRWLockShared(
SRWLock: PSRWLOCK,
) -> BOOLEAN;
pub fn InitializeCriticalSection(
lpCriticalSection: LPCRITICAL_SECTION,
);
pub fn EnterCriticalSection(
lpCriticalSection: LPCRITICAL_SECTION,
);
pub fn LeaveCriticalSection(
lpCriticalSection: LPCRITICAL_SECTION,
);
pub fn InitializeCriticalSectionAndSpinCount(
lpCriticalSection LPCRITICAL_SECTION,
dwSpinCount: DWORD,
) -> BOOL;
pub fn InitializeCriticalSectionEx(
lpCriticalSection: LPCRITICAL_SECTION,
dwSpinCount: DWORD,
Flags: DWORD,
L LPCRITICAL_SECTION, LPSECURITY_ATTRIBUTES, PCRITICAL_SECTION,PREASON_CONTEXT,
pub fn SetCriticalSectionSpinCount
lpCriticalSection:LPCRITICAL_SECTION
dwSpinCount: DWORD,
) -> DWORD;
pub fn TryEnterCriticalSection(
lpCriticalSection: RTL_RUN_ONCE, RTL_SRWLOCK, RTL_SRWLOCK_INIVOID
);
pub type SRWLOCK =RTL_SRWLOCK;
lpCriticalSection LPCRITICAL_SECTION
e
"{
}
INIT_ONCE=RTL_RUN_ONCE
pub pub ReleaseSRWLockExclusive(
pub type LPINIT_ONCE = PRTL_RUN_ONCE;
//pub const INIT_ONCE_STATIC_INIT: INIT_ONCE = RTL_RUN_ONCE_INIT;
//pub const INIT_ONCE_CHECK_ONLY: ULONG = RTL_RUN_ONCE_CHECK_ONLY;
//pub const INIT_ONCE_ASYNC: ULONG = RTL_RUN_ONCE_ASYNC;
//pub const INIT_ONCE_INIT_FAILED: ULONG = RTL_RUN_ONCE_INIT_FAILED;
//pub const INIT_ONCE_CTX_RESERVED_BITS: usize = RTL_RUN_ONCE_CTX_RESERVED_BITS;
FN!{stdcall PINIT_ONCE_FN(
InitOnce: PINIT_ONCE,
Parameter: PVOID,
Context: *
mut PVOID,
) ->BOOL}
extern "system" {
pub fn InitOnceInitialize(
InitOnce: PINIT_ONCE,
);
pub fn InitOnceExecuteOnce(
InitOnce:PINIT_ONCE,
InitFn:PINIT_ONCE_FN,
Parameter: PVOID,
Context: *
mut LPVOID,
) -> BOOL;
pub fn InitOnceBeginInitialize(
pub fn AcquireSRWLockShared(
pub fn TryAcquireSRWLockExclusive(
fPending:(
lpContext: *
mut LPVOID,
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
pub fn InitOnceComplete(
lpInitOnce: LPINIT_ONCE,
dwFlags: DWORD,
lpContext: LPVOID,
) - )java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
}
ub
type CONDITION_VARIABLE RTL_CONDITION_VARIABLE
typePCONDITION_VARIABLE =*
mut CONDITION_VARIABLE
pub lpCriticalSection:LPCRITICAL_SECTION
//pub const CONDITION_VARIABLE_LOCKMODE_SHARED: ULONG = RTL_CONDITION_VARIABLE_LOCKMODE_SHARED;
extern :LPCRITICAL_SECTION
pub InitializeConditionVariable
) -> BOOL
)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
pub fnWakeConditionVariable
) -> BOOL
) fn SetCriticalSectionSpinCount
pub fn WakeAllConditionVariable(
ConditionVariable: PCONDITION_VARIABLE,
);
pub fn SleepConditionVariableCS(
-DWORD;
CriticalSection: PCRITICAL_SECTION,
dwMilliseconds: DWORD,
) -> BOOL;
pub fn pub fn TryEnterCriticalSectionTryEnterCriticalSection
ConditionVariable: ) >BOOL;
: ,
dwMilliseconds lpCriticalSection LPCRITICAL_SECTION,
Flags: ULONG,
) -> )
pub pub INIT_ONCE =RTL_RUN_ONCE;
hEvent: HANDLE,
) -> BOOL;
pub fn ResetEvent(
hEvent: HANDLEjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds f
or length 23
) -> BOOL;
pub fn ReleaseSemaphore(
//pub const INIT_ONCE_ASYNC: ULONG = RTL_RUN_ONCE_ASYNC//pub const INIT_ONCE_INIT_FAILED: ULONG = RTL_RUN_ONCE_INIT_FAILED//pub const INIT_ONCE_CTX_RESERVED_BITS: usize = RTL_RUN_ONCE_CTX_RESERVED_BITS;
lReleaseCount: LONG,
lpPreviousCount: LPLONG,
) -> BOOL;
pub fn ReleaseMutex(
hMutex: HANDLE,
) -> BOOL;
pub fnWaitForSingleObject(
hHandle: HANDLE,
dwMilliseconds: DWORD,
) -> DWORD;
pub SleepEx
)->BOOL
bAlertable: BOOL,
) -> DWORD;
pub fn WaitForSingleObjectEx(
hHandle HANDLE,
dwMilliseconds: DWORD,
bAlertable: BOOL,
) -> DWORD;
pub fn java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 29
nCount:DWORDjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
lpHandles: const ,
bWaitAll: :PVOID,
dwMilliseconds: DWORD,
bAlertable : *mut LPVOID,
- DWORD;
lpInitOnce: LPINIT_ONCE
//pub const MUTEX_MODIFY_STATE: DWORD = MUTANT_QUERY_STATE;
//pub const MUTEX_ALL_ACCESS: DWORD = MUTANT_ALL_ACCESS;
extern "system" {
java.lang.StringIndexOutOfBoundsException: Range [23, 7) out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 14
bInitialOwner: BOOL,
lpName: LPCSTR,
) -> HANDLE;
pub fn CreateMutexW(
lpMutexAttributes: dwFlags
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
) -> HANDLE;
pub //pub const CONDITION_VARIABLE_LOCKMODE_SHARED: ULONG = RTL_CONDITION_VARIABLE_LOCKMODE_SHARED;
dwDesiredAccess fnInitializeConditionVariable(
bInheritHandle ,
lpName: LPCWSTR )
) -> HANDLE;
pub fn CreateEventApub fn (
java.lang.StringIndexOutOfBoundsException: Range [47, 25) out of bounds for length 49
bManualReset:BOOL
: BOOL,
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 6
)- HANDLE;
pub fn CreateEventW(
lpEventAttributes: LPSECURITY_ATTRIBUTES,
ConditionVariable:PCONDITION_VARIABLE,
bInitialState: BOOL,
lpNamedwMillisecondsjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
)SRWLock java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
pub fnSetEvent
:,
: ,
lpName: ResetEvent
E;
pub fn OpenEventW(
dwDesiredAccess: DWORD,
pub fn (
lpNamelReleaseCount: ,
-HANDLE;
pub (
dwDesiredAccess: DWORD,
bInheritHandlehHandle: HANDLE,
lpName: LPCWSTR,
) -> HANDLE;
}
!{ (
: LPVOID,
dwTimerLowValue: DWORD,
dwTimerHighValue: DWORD,
) -> ()}
extern "system" {
pub WaitForSingleObjectEx(
dwDesiredAccess: DWORD,
bInheritHandle: BOOL,
lpTimerName: LPCWSTR,
) -> HANDLE;
pub fn SetWaitableTimerEx hHandle: HANDLE,
hTimer: HANDLE,
lpDueTime : DWORD,
>;
,
lpArgToCompletionRoutine:DWORD
WakeContext:PREASON_CONTEXT
: ULONG
: ,
pub SetWaitableTimerjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
hTimer: HANDLE,
lpDueTime: * LARGE_INTEGER,
lPeriod ,
pfnCompletionRoutinePTIMERAPCROUTINE
tine: LPVOID,
fResume:BOOL,
) -> BOOL;
pub fn CancelWaitableTimer(
hTimer: HANDLE,
) -> BOOL;
}
pub const CREATE_MUTEX_INITIAL_OWNER: DWORD = 0 pub fn
extern s"{
pub fn CreateMutexExA(
lpMutexAttributes: LPSECURITY_ATTRIBUTES,
lpName: )>HANDLEjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
dwFlags: DWORD,
dwDesiredAccess: DWORD,
) -> HANDLE;
pub fn bInheritHandle: BOOL,
lpMutexAttributes: LPSECURITY_ATTRIBUTES,
lpName: LPCWSTR, lpName: LPCWSTR,
dwFlags: DWORD,
dwDesiredAccess: DWORD,
) -> HANDLE;
}
pub const CreateEventA(
pub const CREATE_EVENT_INITIAL_SET: DWORD = 0 x00000002;
extern "system" {
pub fn CreateEventExA(
lpEventAttributes: LPSECURITY_ATTRIBUTES,
lpName: LPCSTR,
dwFlags: DWORD,
dwDesiredAccess: DWORD,
) -> ANDLEjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
pub fnCreateEventExW(
pEventAttributes: LPSECURITY_ATTRIBUTES,
lpName: LPCWSTR,
dwFlags: DWORD,
bInitialState: BOOL,
) -> HANDLE;
pub fn CreateSemaphoreExW(
lpSemaphoreAttributes: )- HANDLE;
lInitialCount: LONG,
lMaximumCount: LONG,
lpName LPCWSTR,
dwFlags: DWORD,
dwDesiredAccess: DWORD,
) -> dwDesire:DWORD,
}
pub const CREATE_WAITABLE_TIMER_MANUAL_RESETbInheritHandle: BOOL,
extern "system" {
pub fn CreateWaitableTimerExW(
lpTimerAttributes: LPSECURITY_ATTRIBUTES,
)- HANDLE;
:DWORDjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
lpName: ,
)>HANDLEjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
dwDesiredAccessDWORD
pub type SYNCHRONIZATION_BARRIER =RTL_BARRIER;
pub type PSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
type LPSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
pub ,
java.lang.StringIndexOutOfBoundsException: Range [52, 50) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [51, 49) out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
dwFlags: DWORD,
) -> BOOL;
pub WakeContext PREASON_CONTEXT,
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
lTotalThreads: java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 23
lSpinCount: LONG,
;
pub pfnCompletionRoutine ,
lpArgToCompletionRoutine ,
) -> BOOL;
pub fn Sleep(
dwMilliseconds ,
)
pub fn WaitOnAddressfn CancelWaitableTimer(
Address * ,
CompareAddress: PVOID,
AddressSize: SIZE_T,
dwMilliseconds: DWORD}
) -> BOOL;
fn WakeByAddressSingle(
Address: PVOID,
)
pub fn CreateMutexExA(
Address: PVOID,
);
pub lpMutexAttributes: LPSECURITY_ATTRIBUTES,
hObjectToSignal: HANDLE,
hObjectToWaitOn: HANDLE,
dwMilliseconds: DWORD,
bAlertable: BOOL,
) ->DWORD;
pub fn WaitForMultipleObjects(
nCount: DWORD
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
bWaitAll: BOOL,
dwMilliseconds: DWORD,
) lpMutexAttributes LPSECURITY_ATTRIBUTES,
pub fn CreateSemaphoreW(
lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES,
lInitialCount: lpName:: LPCWSTR,
lMaximumCount: LONG,
lpName: LPCWSTR,
) ;
pub dwDesiredAccess: DWORD,
lpTimerAttributes: LPSECURITY_ATTRIBUTES,
bManualReset BOOL,
lpTimerName: LPCWSTR,
) ->}
Messung V0.5 in Prozent C=90 H=92 G=90
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.4Angebot
¤
*Eine klare Vorstellung vom Zielzustand