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

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

Устаревшая подпрограмма Описание
ExAcquireResourceExclusive

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

ExAcquireResourceShared

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

ExAllocateFromZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExConvertExclusiveToShared

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

ExDeleteResource

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

ExExtendZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExFreeToZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExInitializeResource

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

ExInitializeWorkItem

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

ExInitializeZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExInterlockedAllocateFromZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExInterlockedDecrementLong

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

ExInterlockedExchangeAddLargeInteger

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

ExInterlockedExchangeUlong

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

ExInterlockedExtendZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExInterlockedFreeToZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExInterlockedIncrementLong

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

ExIsFullZone

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExIsObjectInFirstZoneSegment

Вместо этого используйте списки lookaside. Дополнительные сведения см. в разделе Управление буфером.

ExIsResourceAcquired

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

ExIsResourceAcquiredExclusive

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

ExIsResourceAcquiredShared

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

ExReleaseResource

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

ExReleaseResourceForThread

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

IoAllocateAdapterChannel

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

IoAssignResources

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

IoAttachDeviceByPointer

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

IoFlushAdapterBuffers

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

IoFreeAdapterChannel

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

IoFreeMapRegisters

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

IoMapTransfer

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

IoQueryDeviceDescription

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

IoReportResourceUsage

Эта подпрограмма утверждает аппаратные ресурсы, такие как вектор прерываний, диапазон памяти устройства или определенный канал контроллера DMA в дереве \Registry\Machine\Hardware\ResourceMap , чтобы впоследствии загруженный драйвер не может попытаться использовать те же ресурсы. Если новый драйвер должен поддерживать устаревшее устройство, которое не является перечислимым по протоколу PnP, драйвер должен вызвать IoReportResourceForDetection , чтобы запросить ресурсы для устройства.

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