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

Em vez disso , use ExAcquireResourceExclusiveLite .

ExAcquireResourceShared

Em vez disso , use ExAcquireResourceSharedLite .

ExAllocateFromZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExConvertExclusiveToShared

Em vez disso , use ExConvertExclusiveToSharedLite .

ExDeleteResource

Em vez disso, use ExDeleteResourceLite .

ExExtendZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExFreeToZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExInitializeResource

Em vez disso, use ExInitializeResourceLite .

ExInitializeWorkItem

Em vez disso, use IoAllocateWorkItem .

ExInitializeZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExInterlockedAllocateFromZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExInterlockedDecrementLong

Em vez disso , use InterlockedDecrement .

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 lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExInterlockedFreeToZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExInterlockedIncrementLong

Em vez disso , use InterlockedIncrement .

ExIsFullZone

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExIsObjectInFirstZoneSegment

Em vez disso, use listas lookaside. Para obter mais informações, consulte Gerenciamento de buffer.

ExIsResourceAcquired

Em vez disso, use ExIsResourceAcquiredLite .

ExIsResourceAcquiredExclusive

Em vez disso, use ExIsResourceAcquiredExclusiveLite .

ExIsResourceAcquiredShared

Em vez disso, use ExIsResourceAcquiredSharedLite .

ExReleaseResource

Em vez disso , use ExReleaseResourceLite .

ExReleaseResourceForThread

Em vez disso , use ExReleaseResourceForThreadLite .

IoAllocateAdapterChannel

Em vez disso, use AllocateAdapterChannel .

IoAssignResources

Os drivers de dispositivos PnP são atribuídos a recursos pelo gerenciador 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

Em vez disso , use IoAttachDeviceToDeviceStack .

IoFlushAdapterBuffers

Em vez disso , use FlushAdapterBuffers .

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 devem 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 , para 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

Em vez disso, use IoAllocateMdl .

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