📄 interrupt.c
字号:
/*
*/
#include <sndblst.h>
BOOLEAN
CheckIrq(
PDEVICE_OBJECT DeviceObject)
{
/* PSOUND_BLASTER_PARAMETERS parameters = DeviceObject->DriverExtension;*/
/* TODO */
return TRUE;
}
BOOLEAN NTAPI
ServiceSoundBlasterInterrupt(
IN PKINTERRUPT Interrupt,
IN PVOID Context)
{
DPRINT("* Processing ISR *\n");
return FALSE;
}
NTSTATUS
EnableIrq(
PDEVICE_OBJECT DeviceObject)
{
PSOUND_BLASTER_PARAMETERS parameters = DeviceObject->DeviceExtension;
ULONG vector;
KIRQL irq_level;
KAFFINITY affinity;
NTSTATUS status = STATUS_SUCCESS;
vector = HalGetInterruptVector(Isa,
0,
parameters->irq,
parameters->irq,
&irq_level,
&affinity);
DPRINT("Vector is 0x%x\n", vector);
status = IoConnectInterrupt(¶meters->interrupt,
ServiceSoundBlasterInterrupt,
DeviceObject,
(PKSPIN_LOCK) NULL,
vector,
irq_level,
irq_level,
Latched, /* Latched / LevelSensitive */
FALSE, /* shareable */
affinity,
FALSE);
if ( status == STATUS_INVALID_PARAMETER )
status = STATUS_DEVICE_CONFIGURATION_ERROR;
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -