Синий экран reference by pointer 0x00000018, решаем за минуту

bsod errorДобрый день! Уважаемые читатели и гости одного из крупнейших IT порталов России Pyatilistnik.org. В прошлый раз мы с вами рассмотрели ситуацию по настройке роутера Mikrotik для малого офиса. Офис работает и в его жизненном цикле могут возникать разного рода проблемы, одной из такой ситуаций, было появление синего экрана reference_by_pointer с кодом 0x00000018. Давайте разбираться в чем дело и как, это исправить.

Описание ситуации

И так у меня есть RDS ферма построенная на Windows Server 2012 R2, в какой-то момент система мониторинга прислала уведомление, о том что один из узлов не доступен. Так как у меня, это виртуальная машина) на ESXI 6.5 и крутящейся на сервере Dell R740, то я подключился к консоли и увидел синий экран с такой вот формулировкой:

На вашем ПК возникла проблема, и его необходимо перезагрузить. Мы лишь собираем некоторые сведения об ошибке, а затем будет автоматически выполнена перезагрузка. При желании вы можете найти в интернете информацию по этому коду ошибки: REFERENC_BY_POINTER

REFERENC_BY_POINTER

Анализ синего экрана reference_by_pointer 0x00000018

Когда моя виртуальная машина загрузилась, то я увидел сообщение, что с компьютером возникла проблема, был создан файл минидампа и полного дампа MEMORY.DMP. Я не поленился и отправил сведения компании Microsoft.

reference_by_pointer отправление ошибки в Microsoft

Перед тем, как производить анализ дампов, я всегда просматриваю события в логах Windows. В журнале "Система" я обнаружил ошибку с кодом ID 1001:

Компьютер был перезагружен после критической ошибки. Код ошибки: 0x00000018 (0x0000000000000000, 0xffffe80208a4e700, 0x0000000000000010, 0xffffc0024a26e1f1). Дамп памяти сохранен в: C:\Windows\MEMORY.DMP. Код отчета: 110519-43375-01.

0x00000018 (0x0000000000000000, 0xffffe80208a4e700, 0x0000000000000010

Как видно из события ID 1001 с кодом 0x00000018, вся информация была записана в дамп по пути C:\Windows\MEMORY.DMP. Ранее я вам рассказывал, как производить анализ дампа и находить причины синего экрана, советую почитать. Там мы использовали утилиту Microsoft Kernel Debugger. Открываем Microsoft Kernel Debugger и скармливаем по очереди ваши файлы дампов, для начала я посмотрю мини дамп.

REFERENCE_BY_POINTER (18)
Arguments:
Arg1: 0000000000000000, Object type of the object whose reference count is being lowered
Arg2: ffffe80208a4e700, Object whose reference count is being lowered
Arg3: 0000000000000010, Reserved
Arg4: ffffc0024a26e1f1, Reserved
The reference count of an object is illegal for the current state of the object.
Each time a driver uses a pointer to an object the driver calls a kernel routine
to increment the reference count of the object. When the driver is done with the
pointer the driver calls another kernel routine to decrement the reference count.
Drivers must match calls to the increment and decrement routines. This bugcheck
can occur because an object's reference count goes to zero while there are still
open handles to the object, in which case the fourth parameter indicates the number
of opened handles. It may also occur when the object's reference count drops below zero
whether or not there are open handles to the object, and in that case the fourth parameter
contains the actual value of the pointer references count.

Debugging Details:
------------------

GetUlongPtrFromAddress: unable to read from fffff8011c3c8308

KEY_VALUES_STRING: 1
PROCESSES_ANALYSIS: 1
SERVICE_ANALYSIS: 1
STACKHASH_ANALYSIS: 1
TIMELINE_ANALYSIS: 1
DUMP_CLASS: 1
DUMP_QUALIFIER: 400
BUILD_VERSION_STRING: 9600.19377.amd64fre.winblue_ltsb_escrow.190524-1500
SYSTEM_MANUFACTURER: VMware, Inc.
VIRTUAL_MACHINE: VMware
SYSTEM_PRODUCT_NAME: VMware Virtual Platform
SYSTEM_VERSION: None
BIOS_VENDOR: Phoenix Technologies LTD
BIOS_VERSION: 6.00
BIOS_DATE: 12/12/2018
BASEBOARD_MANUFACTURER: Intel Corporation
BASEBOARD_PRODUCT: 440BX Desktop Reference Platform
BASEBOARD_VERSION: None
DUMP_TYPE: 2
BUGCHECK_P1: 0
BUGCHECK_P2: ffffe80208a4e700
BUGCHECK_P3: 10
BUGCHECK_P4: ffffc0024a26e1f1
CPU_COUNT: 10
CPU_MHZ: bb1
CPU_VENDOR: GenuineIntel
CPU_FAMILY: 6
CPU_MODEL: 55
CPU_STEPPING: 4

CPU_MICROCODE: 6,55,4,0 (F,M,S,R) SIG: 200005E'00000000 (cache) 200005E'00000000 (init)

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT_SERVER

BUGCHECK_STR: 0x18

PROCESS_NAME: rdpclip.exe

CURRENT_IRQL: 0

ANALYSIS_SESSION_TIME: 11-05-2019 16:25:03.0325

ANALYSIS_VERSION: 10.0.18362.1 amd64fre

LAST_CONTROL_TRANSFER: from fffff8011c1dd91d to fffff8011c1ba3a0

STACK_TEXT:
ffffd000`311b7788 fffff801`1c1dd91d : 00000000`00000018 00000000`00000000 ffffe802`08a4e700 00000000`00000010 : nt!KeBugCheckEx
ffffd000`311b7790 fffff801`1c0c3042 : 00000000`00000002 00000000`00000004 ffffe802`08a4e700 fffff800`557020dd : nt! ?? ::FNODOBFM::`string'+0xe82d
ffffd000`311b77d0 fffff801`1c0c291a : 00000000`0000eb01 00000000`00010224 00000000`00000001 ffffe802`0a7c8080 : nt!ExpApplyPriorityBoost+0x16a
ffffd000`311b7840 fffff801`1c0d03ea : ffffe802`07b51b70 ffffe801`ff4ee230 ffffe802`00000000 fffff801`00000000 : nt!ExpWaitForResource+0xea
ffffd000`311b78f0 fffff800`55732a67 : 00000000`00000002 00000000`00000000 ffffd000`311b7b30 00000000`c0000055 : nt!ExAcquireResourceExclusiveLite+0x1da
ffffd000`311b7960 fffff800`55740b5e : ffffc002`51d7c010 ffffe000`d13cd601 ffffe000`d67fab00 ffffe000`d67fa790 : rdbss!__RxAcquireFcb+0xe7
ffffd000`311b79e0 fffff800`563a6a17 : ffffe000`d67fa790 ffffe000`d67f9010 00000000`00000001 fffff800`56382c01 : rdbss!RxFinalizeConnection+0x21e
ffffd000`311b7aa0 fffff800`563a07e1 : ffffe802`09084010 ffffe802`0a799580 ffffe000`d13cd410 ffffe802`0a799580 : rdpdr!DrDeleteConnection+0xbf
ffffd000`311b7ae0 fffff800`5574b474 : ffffe802`09084010 ffffe802`09084010 ffffe802`0a799580 ffffe000`d13cd410 : rdpdr! ?? ::NNGAKEGL::`string'+0x4961
ffffd000`311b7b60 fffff800`557332f0 : ffffe802`0a7996e0 ffffe802`0a799580 ffffe802`0a799580 ffffe801`f5cc51c0 : rdbss!RxXXXControlFileCallthru+0xe4
ffffd000`311b7ba0 fffff800`55700cea : ffffe802`0a799580 fffff800`55725c80 01d593c6`037ea5e1 00007ff7`f3f6a000 : rdbss!RxCommonDevFCBFsCtl+0xb0
ffffd000`311b7c00 fffff800`5573128d : 00000000`00000000 00000000`00000000 00000000`00000000 fffff800`54d66ab9 : rdbss!RxFsdCommonDispatch+0x4fa
ffffd000`311b7d80 fffff800`56390175 : ffffc002`19f1e050 00000000`00000000 fffff800`5638c010 ffffd000`311b7ea8 : rdbss!RxFsdDispatch+0xed
ffffd000`311b7df0 fffff800`54e5a4c5 : ffffe802`0a0facb0 00000000`00000000 ffffe802`0a799580 ffffe801`f5cc51c0 : rdpdr!DrPeekDispatch+0x175
ffffd000`311b7ea0 fffff800`54e5a6a2 : ffffc001`cb6fe1c0 fffff800`54e51000 ffffe000`d191db80 00000000`00000000 : mup!MupiCallUncProvider+0x1b5
ffffd000`311b7f10 fffff800`54e5aa32 : ffffe802`0a799580 ffffd000`311b7fe0 00000000`00000000 ffffd000`311b7f98 : mup!MupStateMachine+0xd2
ffffd000`311b7f50 fffff800`541a30da : ffffe802`0a893250 ffffe802`0a0facb0 00000000`00000800 ffffd000`311b7fa8 : mup!MupFsControl+0xf6
ffffd000`311b7f90 fffff800`541cb821 : ffffd000`311b8050 ffffe000`d1c410a0 ffffe802`0a799728 ffffe802`0a799580 : fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x25a
ffffd000`311b8030 fffff801`1c4ff0af : 00000000`00000002 ffffd000`311b8111 ffffe802`0a7e72b0 0000001e`00100001 : fltmgr!FltpFsControl+0x111
ffffd000`311b8090 fffff801`1c500018 : ffffe802`0a7e7204 ffffe802`0a7e72b0 ffffc002`3d76d218 ffffe802`0a7e72b0 : nt!IopSynchronousServiceTail+0x32b
ffffd000`311b8160 fffff801`1c4b660a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!IopXxxControlFile+0xdb8
ffffd000`311b82a0 fffff801`1c1ca2a3 : 00000000`00000102 ffffd000`311b8358 00000000`00000000 ffffe000`00000001 : nt!NtFsControlFile+0x56
ffffd000`311b8310 00007ffd`5c670aea : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
000000e8`227fe478 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffd`5c670aea

Анализ дампа памяти reference_by_pointer

Далее я наблюдаю имя сбойного модуля MODULE_NAME: rdbss

THREAD_SHA1_HASH_MOD_FUNC: 3df347981ea25fe908378cfdc863119a298a22eb

THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 1efd5a3d77a03ac828224e1fb8e3d35afa86dad0

THREAD_SHA1_HASH_MOD: 97b52b1597adef9978611e2aa3ee60bbb160a7b2

FOLLOWUP_IP:
rdbss!__RxAcquireFcb+e7
fffff800`55732a67 440fb6f0 movzx r14d,al

FAULT_INSTR_CODE: f0b60f44

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: rdbss!__RxAcquireFcb+e7

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: rdbss

IMAGE_NAME: rdbss.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 5a4b1af3

IMAGE_VERSION: 6.3.9600.18895

STACK_COMMAND: .thread ; .cxr ; kb

BUCKET_ID_FUNC_OFFSET: e7

FAILURE_BUCKET_ID: 0x18_rdbss!__RxAcquireFcb

BUCKET_ID: 0x18_rdbss!__RxAcquireFcb

PRIMARY_PROBLEM_CLASS: 0x18_rdbss!__RxAcquireFcb

TARGET_TIME: 2019-11-05T10:44:34.000Z

OSBUILD: 9600

OSSERVICEPACK: 19377

SERVICEPACK_NUMBER: 0

OS_REVISION: 0

SUITE_MASK: 16

PRODUCT_TYPE: 3

OSPLATFORM_TYPE: x64

OSNAME: Windows 8.1

OSEDITION: Windows 8.1 Server TerminalServer

USER_LCID: 0

OSBUILD_TIMESTAMP: 2019-05-25 03:00:40

BUILDDATESTAMP_STR: 190524-1500

BUILDLAB_STR: winblue_ltsb_escrow

BUILDOSVER_STR: 6.3.9600.19377.amd64fre.winblue_ltsb_escrow.190524-1500

ANALYSIS_SESSION_ELAPSED_TIME: 5b34

ANALYSIS_SOURCE: KM

FAILURE_ID_HASH_STRING: km:0x18_rdbss!__rxacquirefcb

FAILURE_ID_HASH: {e2688e42-1abf-a0e7-2a21-11e57f3c2a16}

имя сбойного модуля MODULE_NAME: rdbss

так же можно более детально увидеть имя сбойного драйвера и его версию.

lmvm rdbss
Browse full module list
start end module name
fffff800`556ff000 fffff800`5576d000 rdbss (pdb symbols) c:\symcache\rdbss.pdb\B2DD7E21017744368743EEA8B3A12C872\rdbss.pdb
Loaded symbol image file: rdbss.sys
Mapped memory image file: c:\symcache\rdbss.sys\5A4B1AF36e000\rdbss.sys
Image path: \SystemRoot\system32\DRIVERS\rdbss.sys
Image name: rdbss.sys
Browse all global symbols functions data
Timestamp: Mon Jan 1 22:38:59 2018 (5A4B1AF3)
CheckSum: 00065E62
ImageSize: 0006E000
File version: 6.3.9600.18895
Product version: 6.3.9600.18895
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.7 Driver
File date: 00000000.00000000
Translations: 0409.04b0
Information from resource tables:
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: rdbss.sys
OriginalFilename: RDBSS.Sys
ProductVersion: 6.3.9600.18895
FileVersion: 6.3.9600.18895 (winblue_ltsb.180101-1800)
FileDescription: Redirected Drive Buffering SubSystem Driver
Browse full module list
start end module name
fffff800`556ff000 fffff800`5576d000 rdbss (pdb symbols) c:\symcache\rdbss.pdb\B2DD7E21017744368743EEA8B3A12C872\rdbss.pdb
Loaded symbol image file: rdbss.sys
Mapped memory image file: c:\symcache\rdbss.sys\5A4B1AF36e000\rdbss.sys
Image path: \SystemRoot\system32\DRIVERS\rdbss.sys
Image name: rdbss.sys
Browse all global symbols functions data
Timestamp: Mon Jan 1 22:38:59 2018 (5A4B1AF3)
CheckSum: 00065E62
ImageSize: 0006E000
File version: 6.3.9600.18895
Product version: 6.3.9600.18895
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.7 Driver
File date: 00000000.00000000
Translations: 0409.04b0
Information from resource tables:
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: rdbss.sys
OriginalFilename: RDBSS.Sys
ProductVersion: 6.3.9600.18895
FileVersion: 6.3.9600.18895 (winblue_ltsb.180101-1800)
FileDescription: Redirected Drive Buffering SubSystem Driver
LegalCopyright: © Microsoft Corporation. All rights reserved.
11: kd> x /D rdbss!a*

Из приведенного вывода дампа следует, что синий экран reference_by_pointer 0x00000018 произошел из-за файла rdbss.sys, версии 6.3.9600.18895, а так же процесса rdpclip.exe, отвечающего за буфер на удаленном рабочем столе. Если вы постоянный мой читатель, то помните, что из-за файла rdbss.sys мы уже ловили синий экран 0x00000027 так же на одном из хостов RDS фермы.

Код 18 0x00000018 - может появляться по причине, Счетчик ссылок на объект недопустим для текущего состояния объекта. Каждый раз, когда драйвер использует указатель на объект, драйвер вызывает процедуру ядра, чтобы увеличить число ссылок объекта на единицу. Когда драйвер завершает работу с указателем, драйвер вызывает другую процедуру ядра, чтобы уменьшить количество ссылок на единицу.

Драйверы должны сопоставлять вызовы подпрограмм, которые увеличивают и уменьшают счетчик ссылок. Эта проверка ошибок вызвана несогласованностью в подсчете ссылок объекта. Как правило, несогласованность вызвана драйвером, который уменьшает количество ссылок объекта слишком много раз, делая дополнительные вызовы, которые разыменовывают объект. Эта проверка на наличие ошибок может произойти, потому что счетчик ссылок объекта обнуляется, в то время как все еще есть открытые дескрипторы объекта. Это также может произойти, когда счетчик ссылок объекта упадет ниже нуля, независимо от того, есть ли открытые маркеры объекта.

Методы устранения синего экрана reference_by_pointer 0x00000018

Первое, что вы должны сделать, это произвести установку всех обновлений на вашу систему. Перед обновлением я удостоверюсь, что версия файла rdbss.sys у меня 6.3.9600.18895. Файл располагается по пути C:\Windows\System32\drivers.

версия файла rdbss.sys

Далее открываем "Панель управления", если же вы поймали ошибку reference_by_pointer в Windows 10, то нужно зайти в параметры Windows - Центр обновления.

Поиск обновлений в Windows 10

В моем случае у меня Windows Server 2012 R2, и я как и писал выше иду в панель управления - Центр обновления Windows.

Поиск обновлений в Windows Server 2012 R2

Производим поиск обновлений, как видим в моем случае нашлось 48 штук, устанавливаем.После перезагрузки еще раз проверьте наличие обновлений, у Microsoft они могут устанавливаться в два этапа. После перезагрузки я вижу, что у меня версия файла rdbss.sys стала 6.3.9600.19481, а была напоминаю 6.3.9600.18895. Проверяем работу вашего сервера Windows Server 2012 R2.

Обновленная версия файла rdbss.sys

Если синий экран reference_by_pointer с кодом 0x00000018 повторился, то снова проверьте причину, если она другая и из-за другого драйвера, то делаем следующее. Откройте командную строку обязательно от имени администратора и произведите поиск и устранение ошибок в целостности системных файлов и хранилища компонентов. Для этого у меня есть волшебный код:

sfc /scannow && Dism /online /cleanup-image /restorehealth && Dism.exe /Online /Cleanup-Image /StartComponentCleanup && ChkDsk /r

sfc scannow

Дожидаемся окончание операции, в идеале если будут повреждения, утилиты должны их исправить, но могут быть и ситуации, когда вы получите ошибку, которую вам придется поискать в интернете, их может быть около десятка вариаций. Обязательно перезагружаем ваш компьютер.

Обновление и переустановка драйверов

Очень часто ошибку x00000018 на клиентских операционных системах по типу Windows 7 или Windows 10, вызывает сбойный драйвер, в случае с драйверами Microsoft, они обновляются через центр обновления, если же мы говорим, о других драйверах, например на материнскую плату, жесткий диск, процессор или то же принтер, то вам придется их скачать на официальном сайте производителя и произвести обновление. Обязательно старайтесь держать их в актуальном состоянии. Чтобы посмотреть текущие версии драйверов, вы можете открыть диспетчер устройств.

Обновление драйвера через диспетчер устройств

Если у вас, как и у меня виртуальная машина, то в таком случае необходимо произвести установку свежих версий драйверов интеграции, у меня, это VMware Tools.

Дополнительные причины возникновения ошибки 0x00000018

  • Если у вас в компьютере несколько планок оперативной памяти, то попробуйте их проверить на наличие ошибок, чтобы найти сбойную, можно попробовать включить компьютер и запускать его с разными планками, чтобы найти сбойную.
  • Видел случаи, что BSOD reference_by_pointer вызывал драйвер антивирусного решения Dr.Web dwprot.sys или Kaspersk Kl.sys. Попробуйте его обновить. Если не поможет обратитесь к разработчику за исправлением или удалите его на время.

Синий экран reference_by_pointer из-за Касперского

  • Если у вас BSOD появился после установки новой программы, то удалите ее. Если система не загружается, то сделайте, это через безопасный режим Windows. Удаление производится через окно "Панель управления\Все элементы панели управления\Программы и компоненты"

Удаление программы в Windows из-за BSOD

или "Параметры Windows - Приложения и возможности"

Удаление программы в Windows 10 из-за BSOD

На этом у меня все. Надеюсь, что мой скромный опыт траблшутинга оказался вам полезным и вы устранили причины синего экрана reference_by_pointer 0x00000018. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Оцените статью
Настройка серверов windows и linux
Добавить комментарий

  1. Алексей

    Видно, что автор очень глубоко понимает суть работы виндовс, и ищет причину ошибки целенаправленно, а не просто одно решение на все случаи жизни переустановка винды))) Обязательно занесу этот сайт в закладки.