Поделиться через


Устаревшие подпрограммы ядра Windows

Для поддержки существующих двоичных файлов экспортируются следующие устаревшие подпрограммы:

Obsolete routine Описание
ExAcquireResourceExclusive

Вместо этого используйте ExAcquireResourceExclusiveLite.

ExAcquireResourceShared

Вместо этого используйте ExAcquireResourceSharedLite.

ExAllocateFromZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExConvertExclusiveToShared

Вместо этого используйте exConvertExclusiveToSharedLite.

ExDeleteResource

Вместо этого используйте ExDeleteResourceLite.

ExExtendZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExFreeToZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExInitializeResource

Вместо этого используйте ExInitializeResourceLite.

ExInitializeWorkItem

Вместо этого используйте IoAllocateWorkItem.

ExInitializeZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExInterlockedAllocateFromZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExInterlockedDecrementLong

Вместо этого используйте InterlockedDecrement.

ExInterlockedExchangeAddLargeInteger

Дополнительные сведения об атомарном добавлении двух 64-разрядных чисел см. в разделе InterlockedExchangeAdd64.

ExInterlockedExchangeUlong

Вместо этого используйте InterlockedExchange.

ExInterlockedExtendZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExInterlockedFreeToZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExInterlockedIncrementLong

Use InterlockedIncrement instead.

ExIsFullZone

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExIsObjectInFirstZoneSegment

Use lookaside lists instead. Дополнительные сведения см. в разделе "Использование буферов памяти".

ExIsResourceAcquired

Вместо этого используйте ExIsResourceAcquiredLite.

ExIsResourceAcquiredExclusive

Вместо этого используйте ExIsResourceAcquiredExclusiveLite.

ExIsResourceAcquiredShared

Вместо этого используйте ExIsResourceAcquiredSharedLite.

ExReleaseResource

Вместо этого используйте ExReleaseResourceLite.

ExReleaseResourceForThread

Вместо этого используйте ExReleaseResourceForThreadLite.

IoAllocateAdapterChannel

Use AllocateAdapterChannel instead.

IoAssignResources

Ресурсы драйверов устройств PnP назначаются менеджером PnP, который передает списки ресурсов с каждым запросом IRP_MN_START_DEVICE. Драйверы, которые должны поддерживать устаревшие устройства, которые не могут быть перечислены диспетчером PnP, должны использовать вместо этого IoReportDetectedDevice и IoReportResourceForDetection.

IoAttachDeviceByPointer

Вместо этого используйте IoAttachDeviceToDeviceStack.

IoFlushAdapterBuffers

Use FlushAdapterBuffers instead.

IoFreeAdapterChannel

Вместо этого используйте FreeAdapterChannel.

IoFreeMapRegisters

Вместо этого используйте FreeMapRegisters.

IoMapTransfer

Вместо этого используйте MapTransfer.

IoQueryDeviceDescription

Эта подпрограмма получает сведения о конфигурации оборудования для заданной шины, контроллера или периферийного объекта или любого сочетания этих трех типов из дерева \Registry\Machine\Hardware\Description. Вместо этого драйверы, требующие сведений о конфигурации оборудования, должны использовать IoGetDeviceProperty.

IoReportResourceUsage

Эта подпрограмма резервирует аппаратные ресурсы, такие как вектор прерываний, диапазон памяти устройства или определенный канал контроллера DMA в дереве \Registry\Machine\Hardware\ResourceMap, чтобы последующий загруженный драйвер не мог попытаться использовать те же ресурсы. If a new driver must support a legacy device that is not PnP-enumerable, the driver should call IoReportResourceForDetection to claim resources for the device.

KeGetDcacheFillSize

Вместо этого драйверы должны вызывать GetDmaAlignment.

MmCreateMdl

Вместо этого используйте 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