Compartilhar via


Rotinas obsoletas do kernel do Windows

As seguintes rotinas obsoletas são exportadas para dar suporte a binários existentes:

Rotina obsoleta Descrição
ExAcquireResourceExclusive

Use ExAcquireResourceExclusiveLite em vez disso.

ExAcquireResourceShared

Em vez disso , use ExAcquireResourceSharedLite .

ExAllocateFromZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExConvertExclusiveToShared

Use ExConvertExclusiveToSharedLite em vez disso.

ExDeleteResource

Em vez disso , use ExDeleteResourceLite .

ExExtendZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExFreeToZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExInitializeResource

Em vez disso , use ExInitializeResourceLite .

ExInitializeWorkItem

Em vez disso , use IoAllocateWorkItem .

ExInitializeZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExInterlockedAllocateFromZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExInterlockedDecrementLong

Use InterlockedDecrement em vez disso.

ExInterlockedExchangeAddLargeInteger

Para obter mais informações sobre como adicionar atomicamente dois números de 64 bits, consulte InterlockedExchangeAdd64.

ExInterlockedExchangeUlong

Em vez disso , use InterlockedExchange .

ExInterlockedExtendZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExInterlockedFreeToZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExInterlockedIncrementLong

Em vez disso, use InterlockedIncrement.

ExIsFullZone

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExIsObjectInFirstZoneSegment

Em vez disso, use listas de lookaside. Para obter mais informações, consulte Como usar buffers de memória.

ExIsResourceAcquired

Em vez disso, use ExIsResourceAcquiredLite.

ExIsResourceAcquiredExclusive

Em vez disso, use ExIsResourceAcquiredExclusiveLite .

ExIsResourceAcquiredShared

Use, em vez disso, ExIsResourceAcquiredSharedLite.

ExReleaseResource

Em vez disso , use ExReleaseResourceLite .

ExReleaseResourceForThread

Use ExReleaseResourceForThreadLite em vez disso.

IoAllocateAdapterChannel

Use AllocateAdapterChannel em vez disso.

IoAssignResources

Os drivers de dispositivos PnP têm recursos atribuídos pelo gerenciador de PnP, que passa listas de recursos com cada solicitação IRP_MN_START_DEVICE. Os drivers que devem dar suporte a um dispositivo herdado que não pode ser enumerado pelo gerenciador PnP devem usar IoReportDetectedDevice e IoReportResourceForDetection .

IoAttachDeviceByPointer

Use IoAttachDeviceToDeviceStack em vez disso.

IoFlushAdapterBuffers

Use FlushAdapterBuffers em vez disso.

IoFreeAdapterChannel

Em vez disso, use FreeAdapterChannel.

IoFreeMapRegisters

Em vez disso , use FreeMapRegisters .

IoMapTransfer

Em vez disso , use MapTransfer .

IoQueryDeviceDescription

Essa rotina recupera informações de configuração de hardware sobre um determinado barramento, controlador ou objeto periférico ou qualquer combinação desses três tipos da árvore \Registry\Machine\Hardware\Description. Os drivers que exigem informações de configuração de hardware poderiam usar IoGetDeviceProperty .

IoReportResourceUsage

Essa rotina declara recursos de hardware, como um vetor de interrupção, um intervalo de memória do dispositivo ou um canal de controlador de DMA específico na árvore \Registry\Machine\Hardware\ResourceMap , de modo que um driver carregado posteriormente não possa tentar usar os mesmos recursos. Se um novo driver precisar dar suporte a um dispositivo herdado que não seja PnP enumerável, o driver deverá chamar IoReportResourceForDetection para reivindicar recursos para o dispositivo.

KeGetDcacheFillSize

Em vez disso, os drivers devem chamar GetDmaAlignment.

MmCreateMdl

Use IoAllocateMdl em vez disso.

MmIsNonPagedSystemAddressValid

AllocateAdapterChannel
ExAcquireResourceExclusiveLite
ExAcquireResourceSharedLite
ExConvertExclusiveToSharedLite
ExDeleteResourceLite
ExInitializeResourceLite
ExIsResourceAcquiredExclusiveLite
ExIsResourceAcquiredSharedLite
ExReleaseResourceForThreadLite
ExReleaseResourceLite
InterlockedDecrement
InterlockedExchange
InterlockedIncrement
FlushAdapterBuffers
FreeAdapterChannel
FreeMapRegisters
GetDmaAlignment
InterlockedExchangeAdd64
IoAllocateMdl
IoAllocateWorkItem
IoAttachDeviceToDeviceStack
IoGetDeviceProperty
IoReportDetectedDevice
IoReportResourceForDetection
IRP_MN_START_DEVICE
MapTransfer