Add KeRemoveByKeyDeviceQueueIfBusy, KeReleaseInStackQueuedSpinLock, KeDeregisterBugCheckReasonCallback, KeRegisterBugCheckReasonCallback, KeInitializeThreadedDpc, KeAcquireSpinLockForDpc, KeReleaseSpinLockForDpc, KeAcquireInStackQueuedSpinLockForDpc, KeReleaseInStackQueuedSpinLockForDpc, KeQueryDpcWatchdogInformation, KeSetSystemAffinityThreadEx, KeQueryActiveProcessorCount, KeQueryMaximumProcessorCount, KeRegisterProcessorChangeCallback, KeDeregisterProcessorChangeCallback, KeQueryTotalCycleTimeProcess, KeQueryTotalCycleTimeThread, KeSetTargetProcessorDpcEx, KeSetSystemGroupAffinityThread, KeRevertToUserGroupAffinityThread, KeSetCoalescableTimer, KeQueryUnbiasedInterruptTime, KeQueryActiveProcessorCountEx, KeQueryMaximumProcessorCountEx, KeQueryActiveGroupCount, KeQueryMaximumGroupCount, KeQueryGroupAffinity, KeGetCurrentProcessorNumberEx, KeQueryNodeActiveAffinity, KeQueryNodeMaximumProcessorCount, KeQueryHighestNodeNumber, KeGetCurrentNodeNumber, KeQueryLogicalProcessorRelationship, KeSaveExtendedProcessorState, KeRestoreExtendedProcessorState, SeObjectCreateSaclAccessBits, SeReleaseSubjectContext, SeUnlockSubjectContext, SeCaptureSubjectContext, SeLockSubjectContext, SeSetAuditParameter, SeReportSecurityEvent, SeComputeAutoInheritByObjectType, SeGetWorldRights, PoSetSystemWake, PoGetSystemWake, PoRegisterPowerSettingCallback, PoUnregisterPowerSettingCallback, PoSetDeviceBusyEx, PoStartDeviceBusy, PoEndDeviceBusy, PoQueryWatchdogTime, PoDeletePowerRequest, PoSetPowerRequest, PoClearPowerRequest, PoCreatePowerRequest

- add NTAPI to KeEnterGuardedRegion

svn path=/branches/header-work/; revision=45970
This commit is contained in:
Timo Kreuzer 2010-03-07 01:05:54 +00:00
parent c924e7681c
commit 500d425261

View file

@ -1080,8 +1080,8 @@ NTKERNELAPI
VOID VOID
NTAPI NTAPI
KeSetTargetProcessorDpc( KeSetTargetProcessorDpc(
IN PRKDPC Dpc, IN OUT PRKDPC Dpc,
IN CCHAR Number); IN CCHAR Number);
NTKERNELAPI NTKERNELAPI
KAFFINITY KAFFINITY
@ -1146,6 +1146,14 @@ NTAPI
KeInitializeDeviceQueue( KeInitializeDeviceQueue(
OUT PKDEVICE_QUEUE DeviceQueue); OUT PKDEVICE_QUEUE DeviceQueue);
NTKERNELAPI
VOID
NTAPI
KeInitializeDpc(
OUT PRKDPC Dpc,
IN PKDEFERRED_ROUTINE DeferredRoutine,
IN PVOID DeferredContext OPTIONAL);
NTKERNELAPI NTKERNELAPI
VOID VOID
NTAPI NTAPI
@ -1381,14 +1389,14 @@ KeWaitForSingleObject(
IN BOOLEAN Alertable, IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL); IN PLARGE_INTEGER Timeout OPTIONAL);
#endif #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
#if (NTDDI_VERSION >= NTDDI_WINXP) #if (NTDDI_VERSION >= NTDDI_WINXP)
// _DECL_HAL_KE_IMPORT // _DECL_HAL_KE_IMPORT
VOID VOID
FASTCALL FASTCALL
KeAcquireInStackQueuedSpinLock ( KeAcquireInStackQueuedSpinLock(
IN OUT PKSPIN_LOCK SpinLock, IN OUT PKSPIN_LOCK SpinLock,
OUT PKLOCK_QUEUE_HANDLE LockHandle); OUT PKLOCK_QUEUE_HANDLE LockHandle);
@ -1435,7 +1443,39 @@ KeReleaseInterruptSpinLock(
IN OUT PKINTERRUPT Interrupt, IN OUT PKINTERRUPT Interrupt,
IN KIRQL OldIrql); IN KIRQL OldIrql);
#endif NTKERNELAPI
PKDEVICE_QUEUE_ENTRY
NTAPI
KeRemoveByKeyDeviceQueueIfBusy(
IN OUT PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey);
//_DECL_HAL_KE_IMPORT
VOID
FASTCALL
KeReleaseInStackQueuedSpinLock(
IN PKLOCK_QUEUE_HANDLE LockHandle);
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
NTKERNELAPI
BOOLEAN
NTAPI
KeDeregisterBugCheckReasonCallback(
IN OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord);
NTKERNELAPI
BOOLEAN
NTAPI
KeRegisterBugCheckReasonCallback(
OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
IN KBUGCHECK_CALLBACK_REASON Reason,
IN PUCHAR Component);
#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
#if (NTDDI_VERSION >= NTDDI_WINXPSP2) #if (NTDDI_VERSION >= NTDDI_WINXPSP2)
@ -1445,7 +1485,7 @@ NTAPI
KeFlushQueuedDpcs( KeFlushQueuedDpcs(
VOID); VOID);
#endif #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
#if (NTDDI_VERSION >= NTDDI_WS03) #if (NTDDI_VERSION >= NTDDI_WS03)
@ -1460,19 +1500,303 @@ NTKERNELAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
KeDeregisterNmiCallback( KeDeregisterNmiCallback(
IN PVOID Handle IN PVOID Handle);
);
NTKERNELAPI
VOID
NTAPI
KeInitializeThreadedDpc(
OUT PRKDPC Dpc,
IN PKDEFERRED_ROUTINE DeferredRoutine,
IN PVOID DeferredContext OPTIONAL);
NTKERNELAPI NTKERNELAPI
ULONG_PTR ULONG_PTR
NTAPI NTAPI
KeIpiGenericCall( KeIpiGenericCall(
IN PKIPI_BROADCAST_WORKER BroadcastFunction, IN PKIPI_BROADCAST_WORKER BroadcastFunction,
IN ULONG_PTR Context IN ULONG_PTR Context);
NTKERNELAPI
KIRQL
FASTCALL
KeAcquireSpinLockForDpc(
IN OUT PKSPIN_LOCK SpinLock);
NTKERNELAPI
VOID
FASTCALL
KeReleaseSpinLockForDpc(
IN OUT PKSPIN_LOCK SpinLock,
IN KIRQL OldIrql);
#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
NTKERNELAPI
BOOLEAN
FASTCALL
KeTryToAcquireSpinLockAtDpcLevel(
IN OUT PKSPIN_LOCK SpinLock);
NTKERNELAPI
BOOLEAN
NTAPI
KeAreAllApcsDisabled(
VOID);
NTKERNELAPI
VOID
FASTCALL
KeAcquireGuardedMutex(
IN OUT PKGUARDED_MUTEX GuardedMutex
); );
NTKERNELAPI
VOID
FASTCALL
KeAcquireGuardedMutexUnsafe(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
NTAPI
KeEnterGuardedRegion(
VOID
);
NTKERNELAPI
VOID
NTAPI
KeLeaveGuardedRegion(
VOID
);
NTKERNELAPI
VOID
FASTCALL
KeInitializeGuardedMutex(
OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
FASTCALL
KeReleaseGuardedMutexUnsafe(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
FASTCALL
KeReleaseGuardedMutex(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
BOOLEAN
FASTCALL
KeTryToAcquireGuardedMutex(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
NTKERNELAPI
VOID
FASTCALL
KeAcquireInStackQueuedSpinLockForDpc(
IN OUT PKSPIN_LOCK SpinLock,
OUT PKLOCK_QUEUE_HANDLE LockHandle);
NTKERNELAPI
VOID
FASTCALL
KeReleaseInStackQueuedSpinLockForDpc(
IN PKLOCK_QUEUE_HANDLE LockHandle);
NTKERNELAPI
NTSTATUS
NTAPI
KeQueryDpcWatchdogInformation(
OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
#if defined(SINGLE_GROUP_LEGACY_API)
NTKERNELAPI
KAFFINITY
NTAPI
KeSetSystemAffinityThreadEx(
IN KAFFINITY Affinity);
NTKERNELAPI
ULONG
NTAPI
KeQueryActiveProcessorCount(
OUT PKAFFINITY ActiveProcessors OPTIONAL);
NTKERNELAPI
ULONG
NTAPI
KeQueryMaximumProcessorCount(
VOID);
#endif #endif
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
#if (NTDDI_VERSION >= NTDDI_WS08)
PVOID
KeRegisterProcessorChangeCallback(
IN PPROCESSOR_CALLBACK_FUNCTION CallbackFunction,
IN PVOID CallbackContext OPTIONAL,
IN ULONG Flags);
VOID
KeDeregisterProcessorChangeCallback(
IN PVOID CallbackHandle);
#endif /* (NTDDI_VERSION >= NTDDI_WS08) */
#if (NTDDI_VERSION >= NTDDI_WIN7)
ULONG64
NTAPI
KeQueryTotalCycleTimeProcess(
IN OUT PKPROCESS Process,
OUT PULONG64 CycleTimeStamp);
ULONG64
NTAPI
KeQueryTotalCycleTimeThread(
IN OUT PKTHREAD Thread,
OUT PULONG64 CycleTimeStamp);
NTKERNELAPI
NTSTATUS
NTAPI
KeSetTargetProcessorDpcEx(
IN OUT PKDPC Dpc,
IN PPROCESSOR_NUMBER ProcNumber);
NTKERNELAPI
VOID
NTAPI
KeSetSystemGroupAffinityThread(
IN PGROUP_AFFINITY Affinity,
OUT PGROUP_AFFINITY PreviousAffinity OPTIONAL);
NTKERNELAPI
VOID
NTAPI
KeRevertToUserGroupAffinityThread(
IN PGROUP_AFFINITY PreviousAffinity);
NTKERNELAPI
BOOLEAN
NTAPI
KeSetCoalescableTimer(
IN OUT PKTIMER Timer,
IN LARGE_INTEGER DueTime,
IN ULONG Period,
IN ULONG TolerableDelay,
IN PKDPC Dpc OPTIONAL);
NTKERNELAPI
ULONGLONG
NTAPI
KeQueryUnbiasedInterruptTime(
VOID);
NTKERNELAPI
ULONG
NTAPI
KeQueryActiveProcessorCountEx(
IN USHORT GroupNumber);
NTKERNELAPI
ULONG
NTAPI
KeQueryMaximumProcessorCountEx(
IN USHORT GroupNumber);
NTKERNELAPI
USHORT
NTAPI
KeQueryActiveGroupCount(
VOID);
NTKERNELAPI
USHORT
NTAPI
KeQueryMaximumGroupCount(
VOID);
NTKERNELAPI
KAFFINITY
NTAPI
KeQueryGroupAffinity
IN USHORT GroupNumber);
NTKERNELAPI
ULONG
NTAPI
KeGetCurrentProcessorNumberEx(
OUT PPROCESSOR_NUMBER ProcNumber OPTIONAL);
NTKERNELAPI
VOID
NTAPI
KeQueryNodeActiveAffinity(
IN USHORT NodeNumber,
OUT PGROUP_AFFINITY Affinity OPTIONAL,
OUT PUSHORT Count OPTIONAL);
NTKERNELAPI
USHORT
NTAPI
KeQueryNodeMaximumProcessorCount(
IN USHORT NodeNumber);
NTKERNELAPI
USHORT
NTAPI
KeQueryHighestNodeNumber(
VOID);
NTKERNELAPI
USHORT
NTAPI
KeGetCurrentNodeNumber(
VOID);
NTKERNELAPI
NTSTATUS
NTAPI
KeQueryLogicalProcessorRelationship(
IN PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information OPTIONAL,
IN OUT PULONG Length);
NTKERNELAPI
NTSTATUS
NTAPI
KeSaveExtendedProcessorState(
IN ULONG64 Mask,
OUT PXSTATE_SAVE XStateSave);
NTKERNELAPI
VOID
NTAPI
KeRestoreExtendedProcessorState(
IN PXSTATE_SAVE XStateSave);
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#if defined(_X86_) #if defined(_X86_)
NTKERNELAPI NTKERNELAPI
NTSTATUS NTSTATUS
@ -1516,34 +1840,6 @@ KeFlushWriteBuffer(VOID);
#define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock)
#define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock)
/* SPINLOCK FUNCTIONS */
#if (NTDDI_VERSION >= NTDDI_WINXP)
//_DECL_HAL_KE_IMPORT
VOID
FASTCALL
KeAcquireInStackQueuedSpinLock(
IN OUT PKSPIN_LOCK SpinLock,
OUT PKLOCK_QUEUE_HANDLE LockHandle);
//_DECL_HAL_KE_IMPORT
VOID
FASTCALL
KeReleaseInStackQueuedSpinLock(
IN PKLOCK_QUEUE_HANDLE LockHandle);
#endif
/* FIXME : #if (NTDDI_VERSION >= NTDDI_WS03SP1) */
NTKERNELAPI
BOOLEAN
FASTCALL
KeTryToAcquireSpinLockAtDpcLevel(
IN OUT PKSPIN_LOCK SpinLock
);
/* #endif (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_WS03) #if (NTDDI_VERSION >= NTDDI_WS03)
NTKERNELAPI NTKERNELAPI
BOOLEAN BOOLEAN
@ -1553,75 +1849,6 @@ KeTestSpinLock(
); );
#endif #endif
/* FIXME : #if (NTDDI_VERSION >= NTDDI_WS03SP1) */
NTKERNELAPI
BOOLEAN
NTAPI
KeAreAllApcsDisabled(
VOID);
/* #endif (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
/* Guarded Mutex routines */
NTKERNELAPI
VOID
FASTCALL
KeAcquireGuardedMutex(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
FASTCALL
KeAcquireGuardedMutexUnsafe(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
KeEnterGuardedRegion(
VOID
);
NTKERNELAPI
VOID
NTAPI
KeLeaveGuardedRegion(
VOID
);
NTKERNELAPI
VOID
FASTCALL
KeInitializeGuardedMutex(
OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
FASTCALL
KeReleaseGuardedMutexUnsafe(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
VOID
FASTCALL
KeReleaseGuardedMutex(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
NTKERNELAPI
BOOLEAN
FASTCALL
KeTryToAcquireGuardedMutex(
IN OUT PKGUARDED_MUTEX GuardedMutex
);
#endif
NTHALAPI NTHALAPI
KIRQL KIRQL
NTAPI NTAPI
@ -1629,13 +1856,6 @@ KeGetCurrentIrql(
VOID); VOID);
#if defined(_M_AMD64) #if defined(_M_AMD64)
ULONG64
__readgsqword (
IN ULONG Offset);
#pragma intrinsic(__readgsqword)
FORCEINLINE FORCEINLINE
PKTHREAD PKTHREAD
KeGetCurrentThread ( KeGetCurrentThread (
@ -1643,7 +1863,6 @@ KeGetCurrentThread (
{ {
return (struct _KTHREAD *)__readgsqword(0x188); return (struct _KTHREAD *)__readgsqword(0x188);
} }
#endif #endif
#if defined(_M_IX86) || defined(_M_IA64) #if defined(_M_IX86) || defined(_M_IA64)
@ -1683,7 +1902,8 @@ KeGetCurrentThread(
#endif #endif
#if defined(_NTDDK_) || defined(_NTIFS_) #define PAGED_CODE_LOCKED() NOP_FUNCTION;
#if (NTDDI_VERSION >= NTDDI_WIN2K) #if (NTDDI_VERSION >= NTDDI_WIN2K)
@ -1691,23 +1911,17 @@ NTKERNELAPI
VOID VOID
NTAPI NTAPI
ProbeForRead( ProbeForRead(
IN CONST VOID *Address, IN PVOID Address,
IN SIZE_T Length, IN SIZE_T Length,
IN ULONG Alignment); IN ULONG Alignment);
#endif
#endif
#if (NTDDI_VERSION >= NTDDI_WIN2K)
NTKERNELAPI NTKERNELAPI
VOID VOID
NTAPI NTAPI
ProbeForWrite( ProbeForWrite(
IN PVOID Address, IN PVOID Address,
IN SIZE_T Length, IN SIZE_T Length,
IN ULONG Alignment); IN ULONG Alignment);
#endif #endif
@ -2073,7 +2287,7 @@ NTKERNELAPI
VOID VOID
NTAPI NTAPI
MmFreePagesFromMdl( MmFreePagesFromMdl(
IN PMDL MemoryDescriptorList); IN PMDLX MemoryDescriptorList);
NTKERNELAPI NTKERNELAPI
PVOID PVOID
@ -2112,12 +2326,12 @@ NTKERNELAPI
PVOID PVOID
NTAPI NTAPI
MmMapLockedPagesSpecifyCache( MmMapLockedPagesSpecifyCache(
IN PMDL MemoryDescriptorList, IN PMDLX MemoryDescriptorList,
IN KPROCESSOR_MODE AccessMode, IN KPROCESSOR_MODE AccessMode,
IN MEMORY_CACHING_TYPE CacheType, IN MEMORY_CACHING_TYPE CacheType,
IN PVOID BaseAddress OPTIONAL, IN PVOID BaseAddress OPTIONAL,
IN ULONG BugCheckOnFailure, IN ULONG BugCheckOnFailure,
IN MM_PAGE_PRIORITY Priority); IN MM_PAGE_PRIORITY Priority);
NTKERNELAPI NTKERNELAPI
PVOID PVOID
@ -2520,14 +2734,83 @@ NTKERNELAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
SeDeassignSecurity( SeDeassignSecurity(
IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor); IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor);
NTKERNELAPI NTKERNELAPI
BOOLEAN BOOLEAN
NTAPI NTAPI
SeValidSecurityDescriptor( SeValidSecurityDescriptor(
IN ULONG Length, IN ULONG Length,
IN PSECURITY_DESCRIPTOR SecurityDescriptor); IN PSECURITY_DESCRIPTOR SecurityDescriptor);
NTKERNELAPI
ULONG
NTAPI
SeObjectCreateSaclAccessBits(
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
NTKERNELAPI
VOID
NTAPI
SeReleaseSubjectContext(
IN OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
NTKERNELAPI
VOID
NTAPI
SeUnlockSubjectContext(
IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
NTKERNELAPI
VOID
SeCaptureSubjectContext(
OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
NTKERNELAPI
VOID
SeLockSubjectContext(
IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
#endif
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
NTSTATUS
NTAPI
SeSetAuditParameter(
IN OUT PSE_ADT_PARAMETER_ARRAY AuditParameters,
IN SE_ADT_PARAMETER_TYPE Type,
IN ULONG Index,
IN PVOID Data);
NTSTATUS
NTAPI
SeReportSecurityEvent(
IN ULONG Flags,
IN PUNICODE_STRING SourceName,
IN PSID UserSid OPTIONAL,
IN PSE_ADT_PARAMETER_ARRAY AuditParameters);
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
NTKERNELAPI
ULONG
NTAPI
SeComputeAutoInheritByObjectType(
IN PVOID ObjectType,
IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
IN PSECURITY_DESCRIPTOR ParentSecurityDescriptor OPTIONAL);
#ifdef SE_NTFS_WORLD_CACHE
VOID
NTAPI
SeGetWorldRights(
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PGENERIC_MAPPING GenericMapping,
OUT PACCESS_MASK GrantedAccess);
#endif
#endif #endif
@ -2641,8 +2924,8 @@ NTKERNELAPI
PVOID PVOID
NTAPI NTAPI
PoRegisterSystemState( PoRegisterSystemState(
IN PVOID StateHandle OPTIONAL, IN OUT PVOID StateHandle OPTIONAL,
IN EXECUTION_STATE Flags); IN EXECUTION_STATE Flags);
NTKERNELAPI NTKERNELAPI
NTSTATUS NTSTATUS
@ -2673,13 +2956,106 @@ NTKERNELAPI
VOID VOID
NTAPI NTAPI
PoStartNextPowerIrp( PoStartNextPowerIrp(
IN OUT struct _IRP *Irp); IN OUT struct _IRP *Irp);
NTKERNELAPI NTKERNELAPI
VOID VOID
NTAPI NTAPI
PoUnregisterSystemState( PoUnregisterSystemState(
IN OUT PVOID StateHandle); IN OUT PVOID StateHandle);
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
NTKERNELAPI
VOID
NTAPI
PoSetSystemWake(
IN OUT PIRP Irp);
NTKERNELAPI
BOOLEAN
NTAPI
PoGetSystemWake(
IN PIRP Irp);
NTKERNELAPI
NTSTATUS
NTAPI
PoRegisterPowerSettingCallback(
IN PDEVICE_OBJECT DeviceObject OPTIONAL,
IN LPCGUID SettingGuid,
IN PPOWER_SETTING_CALLBACK Callback,
IN PVOID Context OPTIONAL,
OUT PVOID *Handle OPTIONAL);
NTKERNELAPI
NTSTATUS
NTAPI
PoUnregisterPowerSettingCallback(
IN OUT PVOID Handle);
#endif
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
NTKERNELAPI
VOID
NTAPI
PoSetDeviceBusyEx(
IN OUT PULONG IdlePointer);
#endif
#if (NTDDI_VERSION >= NTDDI_WIN7)
NTKERNELAPI
VOID
NTAPI
PoStartDeviceBusy(
IN OUT PULONG IdlePointer);
NTKERNELAPI
VOID
NTAPI
PoEndDeviceBusy(
IN OUT PULONG IdlePointer);
NTKERNELAPI
BOOLEAN
NTAPI
PoQueryWatchdogTime(
IN PDEVICE_OBJECT Pdo,
OUT PULONG SecondsRemaining);
NTKERNELAPI
VOID
NTAPI
PoDeletePowerRequest(
IN OUT PVOID PowerRequest);
NTKERNELAPI
NTSTATUS
NTAPI
PoSetPowerRequest(
IN OUT PVOID PowerRequest,
IN POWER_REQUEST_TYPE Type);
NTKERNELAPI
NTSTATUS
NTAPI
PoClearPowerRequest(
IN OUT PVOID PowerRequest,
IN POWER_REQUEST_TYPE Type);
NTKERNELAPI
NTSTATUS
NTAPI
PoCreatePowerRequest(
OUT PVOID *PowerRequest,
IN PDEVICE_OBJECT DeviceObject,
IN PCOUNTED_REASON_CONTEXT Context);
#endif #endif
@ -7986,14 +8362,6 @@ IoQueueWorkItem(
IN WORK_QUEUE_TYPE QueueType, IN WORK_QUEUE_TYPE QueueType,
IN PVOID Context OPTIONAL); IN PVOID Context OPTIONAL);
NTKERNELAPI
VOID
NTAPI
KeInitializeDpc(
OUT PRKDPC Dpc,
IN PKDEFERRED_ROUTINE DeferredRoutine,
IN PVOID DeferredContext OPTIONAL);
NTKERNELAPI NTKERNELAPI
VOID VOID
NTAPI NTAPI