[Windows Phone 7 Development and Hacking] spavlin:
*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//RemoteLocalAlloc//RemoteLocalReAlloc//RemoteLocalSize//RemoteLocalFree/

/ForcePageout//GetRomFileInfo//GetRomFileBytes//GetKPhys//GiveKPhys/

/StringCompress//StringDecompress//BinaryCompress//BinaryDecompress/

/GetFSHeapInfo//SetLowestScheduledPriority//PowerOffSystem/

This API can only be called from kernel mode code.

/InterruptInitialize//InterruptDone//InterruptDisable/

This API can only be called from kernel mode code or from user mode drivers.

/SetPowerOffHandler//SetGwesPowerHandler//SetHardwareWatch//ReadRegistryFromOEM/

/WriteRegistryToOEM//LockPages//UnlockPages//SetRAMMode//SetStoreQueueBase//PerformCallBack4/

/VirtualSetAttributes//DecompressBinaryBlock/

/PageOutModule//CeVirtualSharedAlloc//CeCreateToken/

This API can only be called from kernel mode code.

/LoadIntChainHandler//FreeIntChainHandler//CreateStaticMapping//InterruptMask/

This API can only be called from kernel mode code or from user mode drivers.

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.