usb hubs, hotplug support, unplug support, saving log files to disk, smt
This commit is contained in:
1 parent
b838f8d83d
commit
27b31f62b6
39 files changed
+6294
-735
No files matched your search
@@ -352,6 +352,7 @@ static void KiRunKernelApcSelfTest(void) {
|
||||
|
||||
typedef struct KI_IRP_APC_SELFTEST_STATE {
|
||||
EVENT* CompletionEvent;
|
||||
DEVICE_OBJECT* DiskDevice;
|
||||
IRP Irp;
|
||||
KAPC Apc;
|
||||
uint8_t* Buffer;
|
||||
@@ -430,23 +431,18 @@ static void KiRunIrpKernelApcSelfTest(const HAL_API* hal) {
|
||||
KiIrpApcSelfTestNormalRoutine,
|
||||
(void*)&st);
|
||||
|
||||
LIST_INIT(&st.Irp.Link);
|
||||
st.Irp.DriveIndex = 0;
|
||||
st.Irp.Flags = 0;
|
||||
st.Irp.Lba = 0;
|
||||
st.Irp.SectorCount = 1;
|
||||
st.Irp.Buffer = st.Buffer;
|
||||
st.Irp.Status = STATUS_FAILURE;
|
||||
st.Irp.Information = 0;
|
||||
st.DiskDevice = IoReferenceDiskDevice(0);
|
||||
if (!st.DiskDevice)
|
||||
KePanic(KE_PANIC_CODE_SELFTEST, "IRP/APC selftest: drive 0 disappeared before submit\n");
|
||||
|
||||
IoBuildReadWriteIrp(&st.Irp, IRP_MJ_READ, 0, 512, st.Buffer);
|
||||
st.Irp.CompletionEvent = st.CompletionEvent;
|
||||
st.Irp.CompletionApc = &st.Apc;
|
||||
st.Irp.CompletionFn = (IRP_COMPLETION_FN)0;
|
||||
st.Irp.CompletionCtx = (void*)0;
|
||||
st.Irp.HwSlot = 0;
|
||||
st.Irp.DriverCtx = (void*)0;
|
||||
|
||||
DbgPrint("IRP/APC selftest: submitting drive=0 lba=0 sectors=1\n");
|
||||
s = IoSubmitIrp(&st.Irp);
|
||||
s = IoSubmitIrp(st.DiskDevice, &st.Irp);
|
||||
if (s != STATUS_PENDING)
|
||||
KePanic(KE_PANIC_CODE_SELFTEST, "IRP/APC selftest: IoSubmitIrp returned %u\n", s);
|
||||
|
||||
@@ -472,6 +468,7 @@ static void KiRunIrpKernelApcSelfTest(const HAL_API* hal) {
|
||||
st.Buffer[510], st.Buffer[511]);
|
||||
|
||||
MmFreePool(st.Buffer);
|
||||
if (st.DiskDevice) IoDereferenceDeviceObject(st.DiskDevice);
|
||||
ObDereferenceObject(&st.CompletionEvent->Header);
|
||||
|
||||
DbgPrint("IRP/APC selftest: PASS\n");
|
||||
|
||||
Reference in new issue
Block a user