diff --git a/2.x/trunk/phlib/include/ntexapi.h b/2.x/trunk/phlib/include/ntexapi.h index c1a71b2de..f14b1562e 100644 --- a/2.x/trunk/phlib/include/ntexapi.h +++ b/2.x/trunk/phlib/include/ntexapi.h @@ -499,6 +499,98 @@ NtWaitForKeyedEvent( __in_opt PLARGE_INTEGER Timeout ); +// Worker factory + +#if (PHNT_VERSION >= PHNT_VISTA) + +// begin_rev + +typedef enum _WORKER_FACTORY_INFORMATION_CLASS +{ + WorkerFactoryBasicInformation, + MaxWorkerFactoryInfoClass +} WORKER_FACTORY_INFORMATION_CLASS, *PWORKER_FACTORY_INFORMATION_CLASS; + +// ? +typedef struct _WORKER_WORK +{ + PVOID Unknown1; + PVOID Unknown2; + PVOID Unknown3; + PVOID Unknown4; +} WORKER_WORK, *PWORKER_WORK; + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtCreateWorkerFactory( + __out PHANDLE WorkerFactoryHandle, + __in ACCESS_MASK DesiredAccess, + __in_opt POBJECT_ATTRIBUTES ObjectAttributes, + __in HANDLE IoCompletionHandle, + __in HANDLE ProcessHandle, + __in PVOID WorkerThreadStart, + __in_opt PVOID WorkerThreadContext, + __in_opt ULONG MaximumCount, // unsure + __in_opt SIZE_T SizeOfStackReserve, + __in_opt SIZE_T SizeOfStackCommit + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryInformationWorkerFactory( + __in HANDLE WorkerFactoryHandle, + __in WORKER_FACTORY_INFORMATION_CLASS WorkerFactoryInformationClass, + __out_bcount(WorkerFactoryInformationLength) PVOID WorkerFactoryInformation, + __in ULONG WorkerFactoryInformationLength, + __out_opt PULONG ReturnLength + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetInformationWorkerFactory( + __in HANDLE WorkerFactoryHandle, + __in WORKER_FACTORY_INFORMATION_CLASS WorkerFactoryInformationClass, + __in_bcount(WorkerFactoryInformationLength) PVOID WorkerFactoryInformation, + __in ULONG WorkerFactoryInformationLength + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtShutdownWorkerFactory( + __in HANDLE WorkerFactoryHandle, + __inout PULONG RefCount // unsure + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtReleaseWorkerFactoryWorker( + __in HANDLE WorkerFactoryHandle + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtWorkerFactoryWorkerReady( + __in HANDLE WorkerFactoryHandle + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtWaitForWorkViaWorkerFactory( + __in HANDLE WorkerFactoryHandle, + __out PWORKER_WORK Work // ? + ); + +// end_rev + +#endif + // Time NTSYSCALLAPI diff --git a/2.x/trunk/phlib/include/nttp.h b/2.x/trunk/phlib/include/nttp.h index 146bf5a53..20bef92f2 100644 --- a/2.x/trunk/phlib/include/nttp.h +++ b/2.x/trunk/phlib/include/nttp.h @@ -407,94 +407,6 @@ TpCheckTerminateWorker( __in_opt HANDLE Thread ); -// System calls - -// begin_rev - -typedef enum _WORKER_FACTORY_INFORMATION_CLASS -{ - WorkerFactoryBasicInformation, - MaxWorkerFactoryInfoClass -} WORKER_FACTORY_INFORMATION_CLASS, *PWORKER_FACTORY_INFORMATION_CLASS; - -// ? -typedef struct _WORKER_WORK -{ - PVOID Unknown1; - PVOID Unknown2; - PVOID Unknown3; - PVOID Unknown4; -} WORKER_WORK, *PWORKER_WORK; - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtCreateWorkerFactory( - __out PHANDLE WorkerFactoryHandle, - __in ACCESS_MASK DesiredAccess, - __in_opt POBJECT_ATTRIBUTES ObjectAttributes, - __in HANDLE IoCompletionHandle, - __in HANDLE ProcessHandle, - __in PUSER_THREAD_START_ROUTINE WorkerThreadStart, - __in_opt PVOID WorkerThreadContext, - __in_opt ULONG MaximumCount, // unsure - __in_opt SIZE_T SizeOfStackReserve, - __in_opt SIZE_T SizeOfStackCommit - ); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtQueryInformationWorkerFactory( - __in HANDLE WorkerFactoryHandle, - __in WORKER_FACTORY_INFORMATION_CLASS WorkerFactoryInformationClass, - __out_bcount(WorkerFactoryInformationLength) PVOID WorkerFactoryInformation, - __in ULONG WorkerFactoryInformationLength, - __out_opt PULONG ReturnLength - ); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtSetInformationWorkerFactory( - __in HANDLE WorkerFactoryHandle, - __in WORKER_FACTORY_INFORMATION_CLASS WorkerFactoryInformationClass, - __in_bcount(WorkerFactoryInformationLength) PVOID WorkerFactoryInformation, - __in ULONG WorkerFactoryInformationLength - ); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtShutdownWorkerFactory( - __in HANDLE WorkerFactoryHandle, - __inout PULONG RefCount // unsure - ); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtReleaseWorkerFactoryWorker( - __in HANDLE WorkerFactoryHandle - ); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtWorkerFactoryWorkerReady( - __in HANDLE WorkerFactoryHandle - ); - -NTSYSCALLAPI -NTSTATUS -NTAPI -NtWaitForWorkViaWorkerFactory( - __in HANDLE WorkerFactoryHandle, - __out PWORKER_WORK Work // ? - ); - -// end_rev - #endif #endif