我是靠谱客的博主 犹豫奇异果,最近开发中收集的这篇文章主要介绍Replacing HalGetBusData,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

 

 

NTSTATUS

HtsReadWriteConfig(

    PDEVICE_OBJECT DeviceObject,

    ULONG WhichSpace,

    PVOID Buffer,

    ULONG Offset,

    ULONG Length,

    BOOLEAN ReadConfig)

{

    ASSERT(DeviceObject);

    ASSERT(Buffer);

    ASSERT(Length);

 

    PIRP Irp = IoAllocateIrp(DeviceObject->StackSize, FALSE);

 

    if (!Irp) {

      

        return STATUS_INSUFFICIENT_RESOURCES;

    }

    Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;

 

    KEVENT Event;

    KeInitializeEvent(&Event, NotificationEvent, FALSE);

 

    IoSetCompletionRoutine(Irp,HtsGenericCompletion,

                           &Event, TRUE, TRUE, TRUE);

 

    PIO_STACK_LOCATION IoStack = IoGetNextIrpStackLocation(Irp);

    IoStack->MajorFunction= IRP_MJ_PNP;

    IoStack->MinorFunction= ReadConfig ? IRP_MN_READ_CONFIG : IRP_MN_WRITE_CONFIG;

    IoStack->Parameters.ReadWriteConfig.WhichSpace = WhichSpace;

    IoStack->Parameters.ReadWriteConfig.Buffer = Buffer;

    IoStack->Parameters.ReadWriteConfig.Offset = Offset;

    IoStack->Parameters.ReadWriteConfig.Length = Length;

 

    if (ReadConfig) {

 

        RtlZeroMemory(Buffer, Length);

    }

 

    NTSTATUS Status = IoCallDriver(DeviceObject, Irp);

    if (Status == STATUS_PENDING) {

       

       KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);

 

       Status = Irp->IoStatus.Status;

    }

 

    IoFreeIrp(Irp);

 

    return Status;

}

 

NTSTATUS

HtsGenericCompletion (

    IN PDEVICE_OBJECT   DeviceObject,

    IN PIRP             Irp,

    IN PVOID            Context

    )

 

{

    UNREFERENCED_PARAMETER (DeviceObject);   

    KeSetEvent ((PKEVENT) Context, IO_NO_INCREMENT, FALSE);

    return STATUS_MORE_PROCESSING_REQUIRED; // Keep this IRP

}

 

最后

以上就是犹豫奇异果为你收集整理的Replacing HalGetBusData的全部内容,希望文章能够帮你解决Replacing HalGetBusData所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部