Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

BSOD KeBugCheckEx как???   Найти похожие ветки 

 
timotei   (2005-10-18 14:56) [0]

Простой вопрос. Как намеренно вызвать BSOD с указанием кода ошибки? Я так понял это выполняет функция KeBugCheckEx? Маленький пример приветствуется :)


 
Игорь Шевченко ©   (2005-10-18 15:52) [1]


> Маленький пример приветствуется :)


В DDK в примерах есть.


 
timotei   (2005-10-18 16:12) [2]

А эту процедуру вообще из регулярного приложения delphi вызвать можно?
У меня нет DDK можно copypaste"ом?


 
timotei   (2005-10-18 16:21) [3]

Делаю так, вываливается с EAccessViolation:

program Project1;

uses
 Forms,
 Windows, Messages, SysUtils, Variants, Classes, Dialogs;

procedure KeBugCheck(err: integer); external "ntoskrnl.exe";

begin
 Application.Initialize;
 Application.Run;
 KeBugCheck(11);
 exit;
end.


 
umbra ©   (2005-10-18 16:37) [4]


> begin
>  Application.Initialize;
>  Application.Run;
>  KeBugCheck(11);
>  exit;
> end.
>


А что, синий экран нужен после закрытия главной формы?


 
timotei   (2005-10-18 16:50) [5]

главной формы нет.


 
Игорь Шевченко ©   (2005-10-18 16:54) [6]


> У меня нет DDK можно copypaste"ом?


Можно.

VOID
ClasspReleaseQueue(
   IN PDEVICE_OBJECT Fdo,
   IN PIRP ReleaseQueueIrp OPTIONAL
   )
{
   PIO_STACK_LOCATION irpStack;
   PIRP irp;
   PFUNCTIONAL_DEVICE_EXTENSION fdoExtension = Fdo->DeviceExtension;
   PDEVICE_OBJECT lowerDevice;
   PSCSI_REQUEST_BLOCK srb;
   KIRQL currentIrql;

   lowerDevice = fdoExtension->CommonExtension.LowerDeviceObject;

   //
   // we raise irql seperately so we"re not swapped out or suspended
   // while holding the release queue irp in this routine.  this lets
   // us release the spin lock before lowering irql.
   //

   KeRaiseIrql(DISPATCH_LEVEL, &currentIrql);

   KeAcquireSpinLockAtDpcLevel(&(fdoExtension->ReleaseQueueSpinLock));

   //
   // make sure that if they passed us an irp, it matches our allocated irp.
   //

   ASSERT((ReleaseQueueIrp == NULL) ||
          (ReleaseQueueIrp == fdoExtension->PrivateFdoData->ReleaseQueueIrp));

   //
   // ASSERT that we"ve already allocated this. (should not occur)
   // try to allocate it anyways, then finally bugcheck if
   // there"s still no memory...
   //

   ASSERT(fdoExtension->PrivateFdoData->ReleaseQueueIrpAllocated);
   if (!fdoExtension->PrivateFdoData->ReleaseQueueIrpAllocated) {
       ClasspAllocateReleaseQueueIrp(fdoExtension);
   }
   if (!fdoExtension->PrivateFdoData->ReleaseQueueIrpAllocated) {
       KeBugCheckEx(SCSI_DISK_DRIVER_INTERNAL, 0x12, (ULONG_PTR)Fdo, 0x0, 0x0);
   }


 
timotei   (2005-10-18 17:05) [7]

Ну вот, это драйвер. а из обычного приложения?


 
Игорь Шевченко ©   (2005-10-18 17:11) [8]

timotei   (18.10.05 17:05) [7]


> а из обычного приложения?


А из обычного нельзя.


 
umbra ©   (2005-10-18 17:16) [9]


> procedure KeBugCheck(err: integer); external "ntoskrnl.exe";


Я не специалист по апи, но только что здесь
http://delphimaster.net/view/1-1129629760/

читал про экспортирование функций. Там проблема была в соглашении о вызове.


 
_silver ©   (2005-10-18 19:38) [10]

<offtop>
Игорь, если у вас ddk для w2k или xp, не могли бы мне выслать содержимое 3х папок?
src\video\displays\mirror\disp
src\video\miniport\mirror\mini
src\video\displays\mirror\app

Заранее спасибо.
</offtop>


 
Игорь Шевченко ©   (2005-10-18 22:18) [11]

_silver ©   (18.10.05 19:38) [10]

<offtopic>
Отослал
</offtopic>


 
_silver ©   (2005-10-19 08:25) [12]

Игорь Шевченко ©   (18.10.05 22:18) [11]

Спасибо.


 
Idx ©   (2005-10-19 11:06) [13]

И мне если можно MS-MEN@yandex.ru



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.019 c
14-1133005560
Хинт
2005-11-26 14:46
2005.12.18
P-Cad и K155


5-1117455686
Prohodil Mimo
2005-05-30 16:21
2005.12.18
отлов нажатия ТАБ - всё работает, но слышен beep.


2-1133512097
MakNik
2005-12-02 11:28
2005.12.18
MessageBox


3-1130681618
Sam Stone
2005-10-30 17:13
2005.12.18
Поле типа счетчик в MS Access


1-1132744928
К00е
2005-11-23 14:22
2005.12.18
Как заблокировать ctrl+alt+f1 комбинацию в litestep?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский