Ошибка 0x00000027 при синем экране на терминальном сервере

Обновлено 01.10.2019

rdbss.sys

Добрый день! Уважаемые читатели и гости одного из крупнейших блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы разобрали, как устанавливается Windows Server 2019 с последующей базовой настройкой, на текущий момент, это флагманская ОС у компании Microsoft. В сегодняшней публикации мы рассмотрим, причину синего экрана с кодом ошибки RDP-FILE-SYSTEM (rdbss.sys) и номером 0x00000027, которая у меня произошла на одном из хостов RDS фермы Windows Server 2012 R2.

Описание синего экрана RDP-FILE-SYSTEM

Как я и писал выше у меня есть RDS ферма из 20 хостов, в какой-то момент от системы мониторинга пришло уведомление, что один из терминалов стал неактивен. Когда я зашел в окно консоли данной виртуальной машины я обнаружил вот такое сообщение:

На вашем компьютере возникла проблема, и его необходимо перезагрузить. Мы лишь собираем некоторые сведения об ошибке, а затем будет автоматически выполнена. При желании вы можете найти в интернете информацию по этому коду ошибки: RDP-FILE-SYSTEM (rdbss.sys).

RDP-FILE-SYSTEM

Если посмотреть логи Windows через просмотр событий или через Windows Admin Center, то можно обнаружить событие с кодом 1001.

Компьютер был перезагружен после критической ошибки. Код ошибки: 0x00000027 (0x00000000baad0073, 0xffffd0002fcff9a8, 0xffffd0002fcff1c0, 0xfffff800f7ca01f1). Дамп памяти сохранен в: C:\Windows\MEMORY.DMP.

Код 1001

Устраняем ошибку 0x00000027

Так как в моей системе после любого синего экрана создается дамп памяти, то я легко могу его прочитать. Не так давно я вам показывал, как искать причины синего экрана и рассказывал, как с помощью утилиты Microsoft Kernel Debugger, которая нам уже помогала в случаях:

RDR_FILE_SYSTEM (27)
If you see RxExceptionFilter on the stack then the 2nd and 3rd parameters are the
exception record and context record. Do a .cxr on the 3rd parameter and then kb to
obtain a more informative stack trace.
The high 16 bits of the first parameter is the RDBSS bugcheck code, which is defined
as follows:
RDBSS_BUG_CHECK_CACHESUP = 0xca550000,
RDBSS_BUG_CHECK_CLEANUP = 0xc1ee0000,
RDBSS_BUG_CHECK_CLOSE = 0xc10e0000,
RDBSS_BUG_CHECK_NTEXCEPT = 0xbaad0000,
Arguments:
Arg1: 00000000baad0073
Arg2: ffffd0002fcff9a8
Arg3: ffffd0002fcff1c0
Arg4: fffff800f7ca01f1

CPU_COUNT: 10

CPU_MHZ: bb1

CPU_VENDOR: GenuineIntel

CPU_FAMILY: 6

CPU_MODEL: 55

CPU_STEPPING: 4

DEFAULT_BUCKET_ID: ZEROED_STACK_0x27

BUGCHECK_STR: 0x27

CURRENT_IRQL: 0

ANALYSIS_SESSION_HOST: WIN-KHOH0LMOU9J

ANALYSIS_SESSION_TIME: 09-30-2019 23:46:23.0427

ANALYSIS_VERSION: 10.0.18362.1 amd64fre

LAST_CONTROL_TRANSFER: from 0000000000000000 to fffff801493bb3a0

STACK_TEXT:
ffffd000`2fcfe928 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KeBugCheckEx

THREAD_SHA1_HASH_MOD_FUNC: 81a83ae0317433a47fcc36991983df3b6e638b71

THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 6e16edd8c7dd677734fdbcd2397a2e35e9fae964

THREAD_SHA1_HASH_MOD: 76cd06466d098060a9eb26e5fd2a25cb1f3fe0a3

SYMBOL_NAME: ANALYSIS_INCONCLUSIVE

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Unknown_Module

IMAGE_NAME: Unknown_Image

DEBUG_FLR_IMAGE_TIMESTAMP: 0

STACK_COMMAND: .thread ; .cxr ; kb

BUCKET_ID: ZEROED_STACK_0x27

PRIMARY_PROBLEM_CLASS: ZEROED_STACK_0x27

FAILURE_BUCKET_ID: ZEROED_STACK_0x27

TARGET_TIME: 2019-09-30T10:24:35.000Z

OSBUILD: 9600

OSSERVICEPACK: 0

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

OS_LOCALE:

USER_LCID: 0

OSBUILD_TIMESTAMP: 2019-06-06 19:46:22

BUILDDATESTAMP_STR: 190606-0600

BUILDLAB_STR: winblue_ltsb

BUILDOSVER_STR: 6.3.9600.19395.amd64fre.winblue_ltsb.190606-0600

ANALYSIS_SESSION_ELAPSED_TIME: 3742

ANALYSIS_SOURCE: KM

FAILURE_ID_HASH_STRING: km:zeroed_stack_0x27

THREAD_SHA1_HASH_MOD_FUNC: 1be0d1d1e06cef6c427e8a378dc08b4aaf4b225f

THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 007b8b70715f4740669e8fea6b75a14c72d23e0f

THREAD_SHA1_HASH_MOD: bcd96958b75c3fa40db4ac85add3dadb4efd0d59

FOLLOWUP_IP:
rdbss!RxSelectPagingFileObject+51
fffff800`230041f1 f7405000000400 test dword ptr [rax+50h],40000h

FAULT_INSTR_CODE: 5040f7

SYMBOL_STACK_INDEX: 4

SYMBOL_NAME: rdbss!RxSelectPagingFileObject+51

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: 51

FAILURE_BUCKET_ID: AV_rdbss!RxSelectPagingFileObject

BUCKET_ID: AV_rdbss!RxSelectPagingFileObject

PRIMARY_PROBLEM_CLASS: AV_rdbss!RxSelectPagingFileObject

TARGET_TIME: 2019-08-29T05:33:28.000Z

OSBUILD: 9600

OSSERVICEPACK: 19395

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

OS_LOCALE:

USER_LCID: 0

OSBUILD_TIMESTAMP: 2019-06-06 19:46:22

BUILDDATESTAMP_STR: 190606-0600

BUILDLAB_STR: winblue_ltsb

BUILDOSVER_STR: 6.3.9600.19395.amd64fre.winblue_ltsb.190606-0600

ANALYSIS_SESSION_ELAPSED_TIME: 727a

ANALYSIS_SOURCE: KM

FAILURE_ID_HASH_STRING: km:av_rdbss!rxselectpagingfileobject

FAILURE_ID_HASH: {58a51f38-e10b-8e72-9005-72ae0623b37e}

Followup: MachineOwner
---------

11: kd> lmvm rdbss
Browse full module list
start end module name
fffff800`23000000 fffff800`2306e000 rdbss (pdb symbols) C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\sym\rdbss.pdb\B2DD7E21017744368743EEA8B3A12C872\rdbss.pdb
Loaded symbol image file: rdbss.sys
Mapped memory image file: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\sym\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.

0x00000027

Что такое rdbss.sys?

Как видно из отчета, вся проблема с драйвером rdbss.sys. The Redirected Drive Buffering SubSystem (rdbss.sys) - это драйвер подсистемы перенаправленного диска. Подсистема перенаправленной дисковой буферизации (RDBSS) предоставляется в виде драйвера файловой системы режима ядра, который входит в состав операционной системы, и в качестве статической библиотеки rdbsslib.lib, которая входит в комплект драйверов Windows (WDK). Статическая библиотека дублирует код в драйвере режима ядра rdbss.sys .

Первоначальная схема состояла в том, что все сетевые мини-редиректоры будут динамически связываться с драйвером ядра rdbss.sys. Драйверы, которые динамически связаны с rdbss.sys , называются немонолитными драйверами. Однако эта функция никогда не была полностью реализована, поэтому только сетевой мини-перенаправитель Microsoft SMB динамически связывается с rdbss.sys и является немонолитным драйвером. Все остальные сетевые мини-редиректоры, включая другие перенаправители Microsoft, включенные в операционную систему, связаны с библиотекой rdbsslib.lib и статически содержат тот же код, что и драйвер ядра rdbss.sys. Хотя один и тот же исходный код RDBSS используется как в драйвере rdbss.sys, так и в файле rdbsslib.lib библиотеки, размер монолитного сетевого драйвера мини-перенаправителя больше, так как большая часть кода в rdbss.sys включена в каждый драйвер.

Причин по которым данный драйвер может повести себя некорректно не много и чаше всего они связаны с:

  • Утилитой FAR Manager из которой вы на RDS хосте обращаетесь к своим локальным дискам \\tsclient
  • Перемещаемые профили
  • Обновления Windows
  • Несоответствие версий SMB
  • Вирус и вредоносное ПО
  • BIOS и драйверы

Первым делом, когда вы получили синий экран смерти с RDP-FILE-SYSTEM (rdbss.sys) и номером 0x00000027, я вам советую перевести ваш RDSH хост в режим стока, чтобы к нему никто больше не мог подключаться, на время вашего ремонта. Компания Microsoft, вроде бы отчиталась, что данную ошибку они решили аж в 2018 году, выпустив обновление. Поэтому первым делом я вам советую произвести установку обновлений. Так как у меня, это Windows Server 2012 R2, то я открываю "окно Выполнить" и ввожу wuapp.

wuapp

Производите поиск доступных обновлений, в моем примере нашлось 37 обновлений, их стоит установить.

Ошибка 0x00000027

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

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

Первой у нас отработает утилита SFC, она проверит нашу систему на предмет битых файлов и постарается их восстановить. Хочу отметить, что процесс не быстрый и может занимать минут 15-20. Как видно из моего скриншота, поврежденное хранилище компонентов успешно восстановлено.

Проверка системы после синего экрана

Далее у нас вступает в работу утилита DISM. На конечном этапе нам необходимо перезагрузить сервер, чтобы утилита CHKDSK смогла проверить системный диск на наличие ошибок.

Dism /online /cleanup-image /restorehealth

Если у вас после обновлений и проверки целостности системных файлов, все продолжают появляться синие экраны с ошибкой 0x00000027, то пробуем обновить драйвера. Если физический сервер, то заходите на сайт производителя и скачиваете все или можете установить сразу скопом. Если у вас виртуальная машина, как и у меня на гипервизоре VMware ESXI 6.5, то попробуйте установить свежую версию VMTools драйверов интеграции. Так же я вам советую загрузиться в безопасном режиме Windows и проверить на наличие вирусов вашу систему.

Советую еще почитать вот такую ветку обсуждений https://community.spiceworks.com/topic/1883007-bug-check-0x00000027-and-blue-screen-of-death-message-rdbss-sys

Синий экран RDP-FILE-SYSTEM из-за сторонних программ

Продолжив изучать данную ошибку 0x00000027, я наткнулся на ветку обсуждения на сайте Mirosoft, где обсуждалось, что данный BSOD был вызван утилитой FAR Manager.

https://social.technet.microsoft.com/Forums/windows/en-US/26691ffa-7b9c-4691-9639-03156a0c6215/windows-10-crashed-when-accessing-tsclient-path-from-remote-desktop-via-far-manager?forum=win10itprosecurity

Со стороны FAR Manager ситуация такова, что он активно использует Native API, и для операций с каталогами использует не классические функции модуля kernel32 (FindFirstFile/FindNextFile), а функции модуля ntdll (NtQueryDirectoryFile). Возможно, здесь и получается какая-то неожиданная комбинация параметров/вызовов, которую разработчики rdbss.sys не учли (система падает на NtClose, когда идёт очистка открытого объекта файла).

Еще я находил случаи, когда старое приложение NetWorx с фильтром TDI вызывало синий экран 0x00000027. Обязательно проверьте логи вашего антивируса если он есть, так как они любят встраивать свои драйвера в сетевой стек Windows. Надеюсь, что вам поможет, это решить данную проблему с синим экраном. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *