本文整理汇总了C++中KeBugCheckEx函数的典型用法代码示例。如果您正苦于以下问题:C++ KeBugCheckEx函数的具体用法?C++ KeBugCheckEx怎么用?C++ KeBugCheckEx使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了KeBugCheckEx函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: HalpVerifyPrcbVersion
VOID
HalpVerifyPrcbVersion(
VOID
)
/*++
Routine Description:
This function verifies that the HAL matches the kernel. If there
is a mismatch the HAL bugchecks the system.
Arguments:
None.
Return Value:
None.
--*/
{
PKPRCB Prcb;
//
// Verify Prcb major version number, and build options are
// all conforming to this binary image
//
Prcb = KeGetCurrentPrcb();
#if DBG
if (!(Prcb->BuildType & PRCB_BUILD_DEBUG)) {
// This checked hal requires a checked kernel
KeBugCheckEx (MISMATCHED_HAL, 2, Prcb->BuildType, PRCB_BUILD_DEBUG, 0);
}
#else
if (Prcb->BuildType & PRCB_BUILD_DEBUG) {
// This free hal requires a free kernel
KeBugCheckEx (MISMATCHED_HAL, 2, Prcb->BuildType, 0, 0);
}
#endif
#ifndef NT_UP
if (Prcb->BuildType & PRCB_BUILD_UNIPROCESSOR) {
// This MP hal requires an MP kernel
KeBugCheckEx (MISMATCHED_HAL, 2, Prcb->BuildType, 0, 0);
}
#endif
if (Prcb->MajorVersion != PRCB_MAJOR_VERSION) {
KeBugCheckEx (MISMATCHED_HAL,
1, Prcb->MajorVersion, PRCB_MAJOR_VERSION, 0);
}
}
开发者ID:BillTheBest,项目名称:WinNT4,代码行数:55,代码来源:inithal.c
示例2: CmpInitializeCache
VOID
NTAPI
INIT_FUNCTION
CmpInitializeCache(VOID)
{
ULONG Length, i;
/* Calculate length for the table */
Length = CmpHashTableSize * sizeof(CM_KEY_HASH_TABLE_ENTRY);
/* Allocate it */
CmpCacheTable = CmpAllocate(Length, TRUE, TAG_CM);
if (!CmpCacheTable)
{
/* Take the system down */
KeBugCheckEx(CONFIG_INITIALIZATION_FAILED, 3, 1, 0, 0);
}
/* Zero out the table */
RtlZeroMemory(CmpCacheTable, Length);
/* Initialize the locks */
for (i = 0; i < CmpHashTableSize; i++)
{
/* Setup the pushlock */
ExInitializePushLock(&CmpCacheTable[i].Lock);
}
/* Calculate length for the name cache */
Length = CmpHashTableSize * sizeof(CM_NAME_HASH_TABLE_ENTRY);
/* Now allocate the name cache table */
CmpNameCacheTable = CmpAllocate(Length, TRUE, TAG_CM);
if (!CmpNameCacheTable)
{
/* Take the system down */
KeBugCheckEx(CONFIG_INITIALIZATION_FAILED, 3, 3, 0, 0);
}
/* Zero out the table */
RtlZeroMemory(CmpNameCacheTable, Length);
/* Initialize the locks */
for (i = 0; i < CmpHashTableSize; i++)
{
/* Setup the pushlock */
ExInitializePushLock(&CmpNameCacheTable[i].Lock);
}
/* Setup the delayed close table */
CmpInitializeDelayedCloseTable();
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:52,代码来源:cmkcbncb.c
示例3: IovCompleteRequest
VOID
FASTCALL
IovCompleteRequest(
IN PIRP Irp,
IN CCHAR PriorityBoost
)
{
if (!IopVerifierOn) {
IopfCompleteRequest(Irp, PriorityBoost);
return;
}
if (IovpVerifierLevel > 1) {
IovSpecialIrpCompleteRequest(Irp, PriorityBoost);
return;
}
if (Irp->CurrentLocation > (CCHAR) (Irp->StackCount + 1) ||
Irp->Type != IO_TYPE_IRP) {
KeBugCheckEx( MULTIPLE_IRP_COMPLETE_REQUESTS,
(ULONG_PTR) Irp,
__LINE__,
0,
0);
}
if (Irp->CancelRoutine) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_COMPLETE_REQUEST_CANCEL_ROUTINE_SET,
(ULONG_PTR)Irp->CancelRoutine,
(ULONG_PTR)Irp,
0);
}
if (Irp->IoStatus.Status == STATUS_PENDING || Irp->IoStatus.Status == 0xffffffff) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_COMPLETE_REQUEST_INVALID_STATUS,
Irp->IoStatus.Status,
(ULONG_PTR)Irp,
0);
}
if (KeGetCurrentIrql() > DISPATCH_LEVEL) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_COMPLETE_REQUEST_INVALID_IRQL,
KeGetCurrentIrql(),
(ULONG_PTR)Irp,
0);
}
IopfCompleteRequest(Irp, PriorityBoost);
}
开发者ID:conioh,项目名称:os-design,代码行数:51,代码来源:ioverifier.c
示例4: dc_simple_encryption_test
static void dc_simple_encryption_test()
{
PXTS_TEST_CONTEXT ctx;
unsigned char dk[256];
unsigned long e_crc, d_crc, i;
// test PKDBF2
for (i = 0; i < (sizeof(pkcs5_vectors) / sizeof(pkcs5_vectors[0])); i++)
{
sha512_pkcs5_2(pkcs5_vectors[i].i_count,
pkcs5_vectors[i].password, strlen(pkcs5_vectors[i].password),
pkcs5_vectors[i].salt, strlen(pkcs5_vectors[i].salt),
dk, pkcs5_vectors[i].dklen);
if (memcmp(dk, pkcs5_vectors[i].key, pkcs5_vectors[i].dklen) != 0)
{
KeBugCheckEx(STATUS_ENCRYPTION_FAILED, 'DCRP', i, 0, 0);
}
}
DbgMsg("PKDBF2 test passed\n");
// test XTS engine if memory may be allocated
if ( (KeGetCurrentIrql() <= DISPATCH_LEVEL) &&
(ctx = (PXTS_TEST_CONTEXT)mm_secure_alloc(sizeof(XTS_TEST_CONTEXT))) != NULL )
{
// fill key and test buffer
for (i = 0; i < (sizeof(ctx->key) / sizeof(ctx->key[0])); i++) ctx->key[i] = (unsigned char)i;
for (i = 0; i < (sizeof(ctx->test) / sizeof(ctx->test[0])); i++) ctx->test[i] = (unsigned short)i;
// run test cases
for (i = 0; i < (sizeof(xts_crc_vectors) / sizeof(xts_crc_vectors[0])); i++)
{
xts_set_key(ctx->key, xts_crc_vectors[i].alg, &ctx->xkey);
xts_encrypt((const unsigned char*)ctx->test, (unsigned char*)ctx->buff, sizeof(ctx->test), 0x3FFFFFFFC00, &ctx->xkey);
e_crc = crc32((const unsigned char*)ctx->buff, sizeof(ctx->buff));
xts_decrypt((const unsigned char*)ctx->test, (unsigned char*)ctx->buff, sizeof(ctx->test), 0x3FFFFFFFC00, &ctx->xkey);
d_crc = crc32((const unsigned char*)ctx->buff, sizeof(ctx->buff));
if ( e_crc != xts_crc_vectors[i].e_crc || d_crc != xts_crc_vectors[i].d_crc )
{
KeBugCheckEx(STATUS_ENCRYPTION_FAILED, 'DCRP', 0xFF00 | i, e_crc, d_crc);
}
}
DbgMsg("XTS test passed\n");
mm_secure_free(ctx);
}
}
开发者ID:smartinm,项目名称:diskcryptor,代码行数:50,代码来源:crypto_functions.c
示例5: ExInitSystem
BOOLEAN
ExInitSystem(
VOID
)
/*++
Routine Description:
This function initializes the executive component of the NT system.
It will perform Phase 0 or Phase 1 initialization as appropriate.
Arguments:
None.
Return Value:
A value of TRUE is returned if the initialization succeeded. Otherwise
a value of FALSE is returned.
--*/
{
switch ( InitializationPhase ) {
case 0:
return ExpInitSystemPhase0();
case 1:
return ExpInitSystemPhase1();
default:
KeBugCheckEx(UNEXPECTED_INITIALIZATION_CALL, 3, InitializationPhase, 0, 0);
}
}
开发者ID:chunhualiu,项目名称:OpenNT,代码行数:35,代码来源:exinit.c
示例6: KeCheckIfStackExpandCalloutActive
VOID
KeCheckIfStackExpandCalloutActive (
VOID
)
/*++
Routine Description:
This function check whether a kernel stack expand callout is active for
the current thread and bugchecks if the result is positive.
Arguments:
None.
Return Value:
None.
--*/
{
PKERNEL_STACK_CONTROL Control;
PKTHREAD Thread;
Thread = KeGetCurrentThread();
Control = (PKERNEL_STACK_CONTROL)Thread->InitialStack;
if (Control->Previous.StackBase != 0) {
KeBugCheckEx(KERNEL_EXPAND_STACK_ACTIVE, (ULONG64)Thread, 0, 0, 0);
}
return;
}
开发者ID:AlexiaChen,项目名称:wrk_study,代码行数:35,代码来源:callback.c
示例7: CmpReleaseGlobalQuota
VOID
CmpReleaseGlobalQuota(
IN ULONG Size
)
/*++
Routine Description:
If Size <= CmpGlobalQuotaUsed, then decrement it. Else BugCheck.
Arguments:
Size - number of bytes of GlobalQuota caller wants to release
Return Value:
NONE.
--*/
{
if (Size > CmpGlobalQuotaUsed) {
KeBugCheckEx(REGISTRY_ERROR,2,1,0,0);
}
CmpGlobalQuotaUsed -= Size;
}
开发者ID:conioh,项目名称:os-design,代码行数:26,代码来源:cmgquota.c
示例8: MiSpecialPoolCheckPattern
VOID
NTAPI
MiSpecialPoolCheckPattern(PUCHAR P, PPOOL_HEADER Header)
{
ULONG BytesToCheck, BytesRequested, Index;
PUCHAR Ptr;
/* Get amount of bytes user requested to be allocated by clearing out the paged mask */
BytesRequested = (Header->Ulong1 & ~SPECIAL_POOL_PAGED) & 0xFFFF;
/* Get a pointer to the end of user's area */
Ptr = P + BytesRequested;
/* Calculate how many bytes to check */
BytesToCheck = (ULONG)((PUCHAR)PAGE_ALIGN(P) + PAGE_SIZE - Ptr);
/* Remove pool header size if we're catching underruns */
if (((ULONG_PTR)P & (PAGE_SIZE - 1)) == 0)
{
/* User buffer is located in the beginning of the page */
BytesToCheck -= sizeof(POOL_HEADER);
}
/* Check the pattern after user buffer */
for (Index = 0; Index < BytesToCheck; Index++)
{
/* Bugcheck if bytes don't match */
if (Ptr[Index] != Header->BlockSize)
{
KeBugCheckEx(BAD_POOL_HEADER, (ULONG_PTR)P, (ULONG_PTR)&Ptr[Index], Header->BlockSize, 0x24);
}
}
}
开发者ID:Nevermore2015,项目名称:reactos,代码行数:33,代码来源:special.c
示例9: FsRtlWorkerThread
/*
* @implemented
*/
VOID
NTAPI
FsRtlWorkerThread(IN PVOID StartContext)
{
KIRQL Irql;
PLIST_ENTRY Entry;
PWORK_QUEUE_ITEM WorkItem;
ULONG QueueId = (ULONG)StartContext;
/* Set our priority according to the queue we're dealing with */
KeSetPriorityThread(&PsGetCurrentThread()->Tcb, LOW_REALTIME_PRIORITY + QueueId);
/* Loop for events */
for (;;)
{
/* Look for next event */
Entry = KeRemoveQueue(&FsRtlWorkerQueues[QueueId], KernelMode, NULL);
WorkItem = CONTAINING_RECORD(Entry, WORK_QUEUE_ITEM, List);
/* Call its routine (here: FsRtlStackOverflowRead) */
WorkItem->WorkerRoutine(WorkItem->Parameter);
/* Check we're still at passive level or bugcheck */
Irql = KeGetCurrentIrql();
if (Irql != PASSIVE_LEVEL)
{
KeBugCheckEx(IRQL_NOT_LESS_OR_EQUAL, (ULONG_PTR)WorkItem->WorkerRoutine,
(ULONG_PTR)Irql, (ULONG_PTR)WorkItem->WorkerRoutine,
(ULONG_PTR)WorkItem);
}
}
}
开发者ID:hoangduit,项目名称:reactos,代码行数:35,代码来源:stackovf.c
示例10: ExpCheckForWorker
VOID
ExpCheckForWorker (
IN PVOID p,
IN SIZE_T Size
)
{
KIRQL OldIrql;
PLIST_ENTRY Entry;
PCHAR BeginBlock;
PCHAR EndBlock;
WORK_QUEUE_TYPE wqt;
BeginBlock = (PCHAR)p;
EndBlock = (PCHAR)p + Size;
KiLockDispatcherDatabase (&OldIrql);
for (wqt = CriticalWorkQueue; wqt < MaximumWorkQueue; wqt += 1) {
for (Entry = (PLIST_ENTRY) ExWorkerQueue[wqt].WorkerQueue.EntryListHead.Flink;
Entry && (Entry != (PLIST_ENTRY) &ExWorkerQueue[wqt].WorkerQueue.EntryListHead);
Entry = Entry->Flink) {
if (((PCHAR) Entry >= BeginBlock) && ((PCHAR) Entry < EndBlock)) {
KeBugCheckEx(WORKER_INVALID,
0x0,
(ULONG_PTR)Entry,
(ULONG_PTR)BeginBlock,
(ULONG_PTR)EndBlock);
}
}
}
KiUnlockDispatcherDatabase (OldIrql);
}
开发者ID:BaoYu0721,项目名称:WRK-1.2,代码行数:34,代码来源:worker.c
示例11: IovCallDriver
NTSTATUS
FASTCALL
IovCallDriver(
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
)
{
KIRQL saveIrql;
NTSTATUS status;
if (!IopVerifierOn) {
status = IopfCallDriver(DeviceObject, Irp);
return status;
}
if (IovpVerifierLevel > 1) {
status = IovSpecialIrpCallDriver(DeviceObject, Irp);
return status;
}
if (Irp->Type != IO_TYPE_IRP) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_CALL_DRIVER_IRP_TYPE_INVALID,
(ULONG_PTR)Irp,
0,
0);
}
if (!IovpValidateDeviceObject(DeviceObject)) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_CALL_DRIVER_INVALID_DEVICE_OBJECT,
(ULONG_PTR)DeviceObject,
0,
0);
}
saveIrql = KeGetCurrentIrql();
status = IopfCallDriver(DeviceObject, Irp);
if (saveIrql != KeGetCurrentIrql()) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_CALL_DRIVER_IRQL_NOT_EQUAL,
(ULONG_PTR)DeviceObject,
saveIrql,
KeGetCurrentIrql());
}
return status;
}
开发者ID:conioh,项目名称:os-design,代码行数:47,代码来源:ioverifier.c
示例12: PM_fatalError
/****************************************************************************
REMARKS:
Handle fatal errors internally in the driver.
****************************************************************************/
void PMAPI PM_fatalError(
const char *msg)
{
ULONG BugCheckCode = 0;
ULONG MoreBugCheckData[4] = {0};
char *p;
ULONG len;
// Clean up the system first!
if (fatalErrorCleanup)
fatalErrorCleanup();
// KeBugCheckEx brings down the system in a controlled
// manner when the caller discovers an unrecoverable
// inconsistency that would corrupt the system if
// the caller continued to run.
//
// hack - dump the first 20 chars in hex using the variables
// provided - Each ULONG is equal to four characters...
for(len = 0; len < 20; len++)
if (msg[len] == (char)0)
break;
// This looks bad but it's quick and reliable...
p = (char *)&BugCheckCode;
if(len > 0) p[3] = msg[0];
if(len > 1) p[2] = msg[1];
if(len > 2) p[1] = msg[2];
if(len > 3) p[0] = msg[3];
p = (char *)&MoreBugCheckData[0];
if(len > 4) p[3] = msg[4];
if(len > 5) p[2] = msg[5];
if(len > 6) p[1] = msg[6];
if(len > 7) p[0] = msg[7];
p = (char *)&MoreBugCheckData[1];
if(len > 8) p[3] = msg[8];
if(len > 9) p[2] = msg[9];
if(len > 10) p[1] = msg[10];
if(len > 11) p[0] = msg[11];
p = (char *)&MoreBugCheckData[2];
if(len > 12) p[3] = msg[12];
if(len > 13) p[2] = msg[13];
if(len > 14) p[1] = msg[14];
if(len > 15) p[0] = msg[15];
p = (char *)&MoreBugCheckData[3];
if(len > 16) p[3] = msg[16];
if(len > 17) p[2] = msg[17];
if(len > 18) p[1] = msg[18];
if(len > 19) p[0] = msg[19];
// Halt the system!
KeBugCheckEx(BugCheckCode, MoreBugCheckData[0], MoreBugCheckData[1], MoreBugCheckData[2], MoreBugCheckData[3]);
}
开发者ID:kendallb,项目名称:scitech-mgl,代码行数:61,代码来源:pm.c
示例13: MyAssert
VOID
MyAssert (const unsigned char *file, int line)
{
DEBUGP (("MYASSERT failed %s/%d\n", file, line));
KeBugCheckEx (0x0F00BABA,
(ULONG_PTR) line,
(ULONG_PTR) 0,
(ULONG_PTR) 0,
(ULONG_PTR) 0);
}
开发者ID:51isoft,项目名称:openvpn-ipv6,代码行数:10,代码来源:error.c
示例14: KiSwapContextExit
BOOLEAN
FASTCALL
KiSwapContextExit(IN PKTHREAD OldThread,
IN PKSWITCHFRAME SwitchFrame)
{
PKIPCR Pcr = (PKIPCR)KeGetPcr();
PKPROCESS OldProcess, NewProcess;
PKTHREAD NewThread;
ARM_TTB_REGISTER TtbRegister;
/* We are on the new thread stack now */
NewThread = Pcr->PrcbData.CurrentThread;
/* Now we are the new thread. Check if it's in a new process */
OldProcess = OldThread->ApcState.Process;
NewProcess = NewThread->ApcState.Process;
if (OldProcess != NewProcess)
{
TtbRegister.AsUlong = NewProcess->DirectoryTableBase[0];
ASSERT(TtbRegister.Reserved == 0);
KeArmTranslationTableRegisterSet(TtbRegister);
}
/* Increase thread context switches */
NewThread->ContextSwitches++;
/* Load data from switch frame */
Pcr->NtTib.ExceptionList = SwitchFrame->ExceptionList;
/* DPCs shouldn't be active */
if (Pcr->PrcbData.DpcRoutineActive)
{
/* Crash the machine */
KeBugCheckEx(ATTEMPTED_SWITCH_FROM_DPC,
(ULONG_PTR)OldThread,
(ULONG_PTR)NewThread,
(ULONG_PTR)OldThread->InitialStack,
0);
}
/* Kernel APCs may be pending */
if (NewThread->ApcState.KernelApcPending)
{
/* Are APCs enabled? */
if (!NewThread->SpecialApcDisable)
{
/* Request APC delivery */
if (SwitchFrame->ApcBypassDisable) HalRequestSoftwareInterrupt(APC_LEVEL);
return TRUE;
}
}
/* Return */
return FALSE;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:55,代码来源:thrdini.c
示例15: KiEspToTrapFrame
VOID
NTAPI
KiEspToTrapFrame(IN PKTRAP_FRAME TrapFrame,
IN ULONG_PTR Esp)
{
KIRQL OldIrql;
ULONG Previous;
/* Raise to APC_LEVEL if needed */
OldIrql = KeGetCurrentIrql();
if (OldIrql < APC_LEVEL) KeRaiseIrql(APC_LEVEL, &OldIrql);
/* Get the old ESP */
Previous = KiEspFromTrapFrame(TrapFrame);
/* Check if this is user-mode */
if ((TrapFrame->SegCs & MODE_MASK))
{
/* Write it directly */
TrapFrame->Rsp = Esp;
}
else
{
/* Don't allow ESP to be lowered, this is illegal */
if (Esp < Previous) KeBugCheckEx(SET_OF_INVALID_CONTEXT,
Esp,
Previous,
(ULONG_PTR)TrapFrame,
0);
/* Create an edit frame, check if it was alrady */
if (!(TrapFrame->SegCs & FRAME_EDITED))
{
/* Update the value */
TrapFrame->Rsp = Esp;
}
else
{
/* Check if ESP changed */
if (Previous != Esp)
{
/* Save CS */
TrapFrame->SegCs &= ~FRAME_EDITED;
/* Save ESP */
TrapFrame->Rsp = Esp;
}
}
}
/* Restore IRQL */
if (OldIrql < APC_LEVEL) KeLowerIrql(OldIrql);
}
开发者ID:GYGit,项目名称:reactos,代码行数:54,代码来源:kdb.c
示例16: PopShutdownSystem
VOID
NTAPI
PopShutdownSystem(IN POWER_ACTION SystemAction)
{
/* Note should notify caller of NtPowerInformation(PowerShutdownNotification) */
/* Unload symbols */
DPRINT("It's the final countdown...%lx\n", SystemAction);
DbgUnLoadImageSymbols(NULL, (PVOID)-1, 0);
/* Run the thread on the boot processor */
KeSetSystemAffinityThread(1);
/* Now check what the caller wants */
switch (SystemAction)
{
/* Reset */
case PowerActionShutdownReset:
/* Try platform driver first, then legacy */
//PopInvokeSystemStateHandler(PowerStateShutdownReset, NULL);
PopSetSystemPowerState(PowerSystemShutdown, SystemAction);
HalReturnToFirmware(HalRebootRoutine);
break;
case PowerActionShutdown:
/* Check for group policy that says to use "it is now safe" screen */
if (PopShutdownPowerOffPolicy)
{
/* FIXFIX: Switch to legacy shutdown handler */
//PopPowerStateHandlers[PowerStateShutdownOff].Handler = PopShutdownHandler;
}
case PowerActionShutdownOff:
/* Call shutdown handler */
//PopInvokeSystemStateHandler(PowerStateShutdownOff, NULL);
/* ReactOS Hack */
PopSetSystemPowerState(PowerSystemShutdown, SystemAction);
PopShutdownHandler();
/* If that didn't work, call the HAL */
HalReturnToFirmware(HalPowerDownRoutine);
break;
default:
break;
}
/* Anything else should not happen */
KeBugCheckEx(INTERNAL_POWER_ERROR, 5, 0, 0, 0);
}
开发者ID:CSRedRat,项目名称:reactos-playground,代码行数:54,代码来源:poshtdwn.c
示例17: PspCatchCriticalBreak
VOID
NTAPI
PspCatchCriticalBreak(IN PCHAR Message,
IN PVOID ProcessOrThread,
IN PCHAR ImageName)
{
CHAR Action[2];
BOOLEAN Handled = FALSE;
PAGED_CODE();
/* Check if a debugger is enabled */
if (KdDebuggerEnabled)
{
/* Print out the message */
DbgPrint(Message, ProcessOrThread, ImageName);
do
{
/* If a debugger isn't present, don't prompt */
if (KdDebuggerNotPresent) break;
/* A debuger is active, prompt for action */
DbgPrompt("Break, or Ignore (bi)?", Action, sizeof(Action));
switch (Action[0])
{
/* Break */
case 'B': case 'b':
/* Do a breakpoint */
DbgBreakPoint();
/* Ignore */
case 'I': case 'i':
/* Handle it */
Handled = TRUE;
/* Unrecognized */
default:
break;
}
} while (!Handled);
}
/* Did we ultimately handle this? */
if (!Handled)
{
/* We didn't, bugcheck */
KeBugCheckEx(CRITICAL_OBJECT_TERMINATION,
((PKPROCESS)ProcessOrThread)->Header.Type,
(ULONG_PTR)ProcessOrThread,
(ULONG_PTR)ImageName,
(ULONG_PTR)Message);
}
}
开发者ID:CSRedRat,项目名称:reactos-playground,代码行数:54,代码来源:kill.c
示例18: CmpInitializeCache
VOID
CmpInitializeCache()
{
ULONG TotalCmCacheSize;
ULONG i;
TotalCmCacheSize = CmpHashTableSize * sizeof(PCM_KEY_HASH);
CmpCacheTable = ExAllocatePoolWithTag(PagedPool,
TotalCmCacheSize,
'aCMC');
if (CmpCacheTable == NULL) {
KeBugCheckEx(CONFIG_INITIALIZATION_FAILED,6,1,0,0);
return;
}
RtlZeroMemory(CmpCacheTable, TotalCmCacheSize);
TotalCmCacheSize = CmpHashTableSize * sizeof(PCM_NAME_HASH);
CmpNameCacheTable = ExAllocatePoolWithTag(PagedPool,
TotalCmCacheSize,
'aCMC');
if (CmpNameCacheTable == NULL) {
KeBugCheckEx(CONFIG_INITIALIZATION_FAILED,6,1,0,0);
return;
}
RtlZeroMemory(CmpNameCacheTable, TotalCmCacheSize);
CmpDelayedCloseTable = ExAllocatePoolWithTag(PagedPool,
CmpDelayedCloseSize * sizeof(PCM_KEY_CONTROL_BLOCK),
'cDMC');
if (CmpDelayedCloseTable == NULL) {
KeBugCheckEx(CONFIG_INITIALIZATION_FAILED,6,2,0,0);
return;
}
CmpDelayedFreeIndex = 0;
for (i=0; i<CmpDelayedCloseSize-1; i++) {
CmpDelayedCloseTable[i] = (PCM_KEY_CONTROL_BLOCK)ULongToPtr(i+1);
}
CmpDelayedCloseTable[CmpDelayedCloseSize-1] = (PCM_KEY_CONTROL_BLOCK)-1;
CmpDelayedCloseCurrent = CmpDelayedCloseTable;
}
开发者ID:chunhualiu,项目名称:OpenNT,代码行数:41,代码来源:cmsubs.c
示例19: xHalTranslateBusAddress
BOOLEAN
NTAPI
xHalTranslateBusAddress(IN INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber,
IN PHYSICAL_ADDRESS BusAddress,
IN OUT PULONG AddressSpace,
OUT PPHYSICAL_ADDRESS TranslatedAddress)
{
KeBugCheckEx(HAL_INITIALIZATION_FAILED, 0, 0, 0, 0);
return FALSE;
}
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:12,代码来源:halstub.c
示例20: IovFreeIrpPrivate
VOID
IovFreeIrpPrivate(
IN PIRP Irp
)
{
#ifndef NO_SPECIAL_IRP
BOOLEAN freeHandled ;
#endif
if (IopVerifierOn) {
if (Irp->Type != IO_TYPE_IRP) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_FREE_IRP_TYPE_INVALID,
(ULONG_PTR)Irp,
0,
0);
}
if (!IsListEmpty(&(Irp)->ThreadListEntry)) {
KeBugCheckEx(DRIVER_VERIFIER_IOMANAGER_VIOLATION,
IO_FREE_IRP_NOT_ASSOCIATED_WITH_THREAD,
(ULONG_PTR)Irp,
0,
0);
}
}
#ifndef NO_SPECIAL_IRP
SPECIALIRP_IO_FREE_IRP(Irp, &freeHandled) ;
if (freeHandled) {
return ;
}
#endif
IopFreeIrp(Irp);
}
开发者ID:conioh,项目名称:os-design,代码行数:40,代码来源:ioverifier.c
注:本文中的KeBugCheckEx函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论