API Name |
Message |
LocalAllocInProcess |
This is no longer supported. One possible alternative is to use remote heap mechanism to share heap data. |
LocalFreeInProcess |
This is no longer supported. One possible alternative is to use remote heap mechanism to share heap data. |
LocalSizeInProcess |
This is no longer supported. One possible alternative is to use remote heap mechanism to share heap data. |
DumpKCallProfile |
This is no longer supported. API call is a no-op. |
ProfileSyscall |
This is no longer supported. API call is a no-op. |
AddTrackedItem |
This is no longer supported. API call will return failure. Use Application Verifier to track heap memory. |
DeleteTrackedItem |
This is no longer supported. API call will return failure. Use Application Verifier to track heap memory. |
PrintTrackedItem |
This is no longer supported. API call will return failure. Use Application Verifier to track heap memory. |
RegisterTrackedItem |
This is no longer supported. API call will return failure. Use Application Verifier to track heap memory. |
FilterTrackedItem |
This is no longer supported. API call is a no-op. Use Application Verifier to track heap memory. |
MapPtrToProcess |
This is no longer supported. If this is being used to access an API argument, you can remove the mapping call. If this is being used to access a pointer that is passed inside a structure or through some other means, you would need to explicitly switch to calling buffer marshalling and unmarshalling APIs. |
MapPtrUnsecure |
This is no longer supported. If this is being used to access an API argument, you can remove the mapping call. If this is being used to access a pointer that is passed inside a structure or through some other means, you would need to explicitly switch to calling buffer marshalling and unmarshalling APIs. |
GetProcFromPtr |
This is no longer supported. Use OpenProcess API to get a process handle. |
GetProcAddrBits |
This is no longer supported. Process VMBase is always at the same fixed location (64K). |
SetProcPermissions |
Completely impossible, remove it. Likely this call wraps code that accesses another process virtual memory space; verify that the addresses youre using are now getting duplicated / aliased for you, or else you will need to do so yourself. |
GetCurrentPermissions |
Completely impossible, remove it. Likely this call wraps code that accesses another process virtual memory space; verify that the addresses youre using are now getting duplicated / aliased for you, or else you will need to do so yourself. |
SetHandleOwner |
Update code to use DuplicateHandle to create a new handle for the other process, and then close the original handle. Also, if your code is part of a kernel-mode server, you need to move the ownership assignment out into the external method that is only invoked when your API is called by a different process. |
SetKMode |
Completely impossible, remove it. Likely this call wraps code that accesses another process virtual memory space; verify that the addresses youre using are now getting duplicated / aliased for you, or else you will need to do so yourself. |
ConnectDebugger |
This is no longer supported. |
GetProcessIndexFromID |
This is no longer supported. If this API is being used to implement process reference counting, you should revise your reference counting to track processes in a linked list instead of an array. |
GetCallerProcessIndex |
This is no longer supported. If this API is being used to implement process reference counting, you should revise your reference counting to track processes in a linked list instead of an array. |
FlushViewOfFileMaybe |
This is no longer supported. |
CeGetCurrentTrust |
Trust/Untrusted mechanism doesn't exist anymore. One can limit the code which runs on the system by using certmod component. |
CeGetCallerTrust |
Trust/Untrusted mechanism doesn't exist anymore. One can limit the code which runs on the system by using certmod component. |
CeMapArgumentArray |
This is no longer supported. |
MapCallerPtr |
This is no longer supported. If this is being used to access an API argument, you can remove the mapping call. If this is being used to access a pointer that is passed inside a structure or through some other means, you would need to explicitly switch to calling buffer marshalling and unmarshalling APIs. |
MapPtrToProcWithSize |
This is no longer supported. If this is being used to access an API argument, you can remove the mapping call. If this is being used to access a pointer that is passed inside a structure or through some other means, you would need to explicitly switch to calling buffer marshalling and unmarshalling APIs. |
RemoteHeapAlloc |
This is no longer supported. Use the new remote heap mechanism (API CeRemoteHeapCreate) to share heap data. |
RemoteHeapReAlloc |
This is no longer supported. Use the new remote heap mechanism (API CeRemoteHeapCreate) to share heap data. |
RemoteHeapFree |
This is no longer supported. Use the new remote heap mechanism (API CeRemoteHeapCreate) to share heap data. |
RemoteHeapSize |
This is no longer supported. Use the new remote heap mechanism (API CeRemoteHeapCreate) to share heap data. |
GetProcessIDFromIndex |
This is no longer supported. |
CeZeroPointer |
This is no longer supported. |
ConnectHdstub |
This is no longer supported. |
ConnectOsAxsT0 |
This is no longer supported. |
ConnectOsAxsT1 |
This is no longer supported. |
AttachHdstub |
This is no longer supported. |
AttachOsAxsT0 |
This is no longer supported. |
AttachOsAxsT1 |
This is no longer supported. |
CeGetProcessTrust |
Trust/Untrusted mechanism doesn't exist anymore. One can limit the code which runs on the system by using certmod component. |
PSLNotify |
This API can only be called from kernel mode code. |
RemoteLocalAlloc |
This API can only be called from kernel mode code. |
RemoteLocalReAlloc |
This API can only be called from kernel mode code. |
RemoteLocalSize |
This API can only be called from kernel mode code. |
RemoteLocalFree |
This API can only be called from kernel mode code. |
ForcePageout |
This API can only be called from kernel mode code. |
GetRomFileInfo |
This API can only be called from kernel mode code. |
GetRomFileBytes |
This API can only be called from kernel mode code. |
GetKPhys |
This API can only be called from kernel mode code. |
GiveKPhys |
This API can only be called from kernel mode code. |
StringCompress |
This API can only be called from kernel mode code. |
StringDecompress |
This API can only be called from kernel mode code. |
BinaryCompress |
This API can only be called from kernel mode code. |
BinaryDecompress |
This API can only be called from kernel mode code. |
GetFSHeapInfo |
This API can only be called from kernel mode code. |
SetLowestScheduledPriority |
This API can only be called from kernel mode code. |
PowerOffSystem |
This API can only be called from kernel mode code. |
InterruptInitialize |
This API can only be called from kernel mode code or from user mode drivers. |
InterruptDone |
This API can only be called from kernel mode code or from user mode drivers. |
InterruptDisable |
This API can only be called from kernel mode code or from user mode drivers. |
SetPowerOffHandler |
This API can only be called from kernel mode code. |
SetGwesPowerHandler |
This API can only be called from kernel mode code. |
SetHardwareWatch |
This API can only be called from kernel mode code. |
ReadRegistryFromOEM |
This API can only be called from kernel mode code. |
WriteRegistryToOEM |
This API can only be called from kernel mode code. |
LockPages |
This API can only be called from kernel mode code. |
UnlockPages |
This API can only be called from kernel mode code. |
SetRAMMode |
This API can only be called from kernel mode code. |
SetStoreQueueBase |
This API can only be called from kernel mode code. |
PerformCallBack4 |
This API can only be called from kernel mode code. |
SetOOMEvent |
This API can only be called from kernel mode code. |
LoadIntChainHandler |
This API can only be called from kernel mode code or from user mode drivers. |
FreeIntChainHandler |
This API can only be called from kernel mode code or from user mode drivers. |
AllocPhysMem |
This API can only be called from kernel mode code. |
CreateStaticMapping |
This API can only be called from kernel mode code or from user mode drivers. |
VirtualSetAttributes |
This API can only be called from kernel mode code. |
DecompressBinaryBlock |
This API can only be called from kernel mode code. |
InterruptMask |
This API can only be called from kernel mode code or from user mode drivers. |
PageOutModule |
This API can only be called from kernel mode code. |
CeVirtualSharedAlloc |
This API can only be called from kernel mode code. |
CeCreateToken |
This API can only be called from kernel mode code. |
IsAPIReady |
Usage discouraged. We expanded the number of API sets and changed the API set IDs. Use WaitForAPIReady API or use ready event signaling mechanism. |
RegisterDevice |
Usage discouraged. Use ActivateDeviceEx instead. |
DeregisterDevice |
Usage discouraged. Use DeactivateDevice instead. |
VirtualProtect |
This API can only be called on an address previously allocated through VirtualAlloc in the caller's process space. |
CreateFileForMapping |
Usage of this API is discouraged. You should consider switching to CreateFile and CreateFileMapping. (Please note that the handle-closing semantics for CreateFile are different from those of CreateFileForMapping: the kernel automatically closes the handle you receive from CreateFileForMapping, while you must close the handle you receive from CreateFile.) |
VirtualCopy |
This API can only be used to alias in the current active process. For kernel mode threads, one can use the new API VirtualCopyEx to create an alias of virtual address between two different processes. Also if you are using this API to access hardware directly, then you need to run your code in a kernel mode driver. |
CreateAPISet |
New function descriptors are required. |
GetCallerProcess |
Usage discouraged. Use GetDirectCallerProcessId or GetCallerVMProcessId instead. |
RegisterAPISet |
New function descriptors are required. |
CreateFileForMappingW |
Usage of this API is discouraged. You should consider switching to CreateFile. (Please note that the handle-closing semantics for CreateFile are different from those of CreateFileForMapping: the kernel automatically closes the handle you receive from CreateFileForMapping, while you must close the handle you receive from CreateFile.) |
ActivateDevice |
Driver load flags have changed to account for kernel mode and user mode srivers. |
ActivateDeviceEx |
Driver load flags have changed to account for kernel mode and user mode srivers. |
ServiceIoControl |
Service handles are no longer exposed to applications - applications always deal with filesystem based handles now. Replace these calls with DeviceIoControl instead. |
GetServiceHandle |
Use of this API will leak a file handle since internally this is now implemented as CreateFile and there is no CloseServiceHandle API call; new code should not use this. |