ydh0304
驱动牛犊
驱动牛犊
  • 注册日期2008-01-07
  • 最后登录2008-04-17
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
阅读:1041回复:0

求教:如何在miniDriver 中响应Pnp消息

楼主#
更多 发布于:2008-01-22 11:56
我的驱动初始化例程如下:
extern "C" ULONG DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath )
{
    NTSTATUS  ret_sta;

    HW_INITIALIZATION_DATA  HwInitData;
    RtlZeroMemory( &HwInitData, sizeof(HwInitData) );
    HwInitData.HwInitializationDataSize    = sizeof(HwInitData);
    HwInitData.HwInterrupt                 = NULL;
    HwInitData.HwReceivePacket             = AdapterReceivePacket;
    HwInitData.HwCancelPacket              = AdapterCancelPacket;
    HwInitData.HwRequestTimeoutHandler     = AdapterTimeoutPacket;
    HwInitData.DeviceExtensionSize         = sizeof(HW_DEVICE_EXTENSION);
    HwInitData.PerRequestExtensionSize     = 0;                          
    HwInitData.FilterInstanceExtensionSize = 0;
    HwInitData.PerStreamExtensionSize      = sizeof(ULONG);
    HwInitData.BusMasterDMA                = FALSE;  
    HwInitData.Dma24BitAddresses           = FALSE;
    HwInitData.BufferAlignment             = 3;
    HwInitData.DmaBufferSize               = 0;
    HwInitData.TurnOffSynchronization      = TRUE;      
    ret_sta=StreamClassRegisterAdapter( DriverObject, RegistryPath, &HwInitData );
    return ret_sta;
}
相关的消息响应会在AdapterReceivePacket中完成。如下:
VOID STREAMAPI AdapterReceivePacket( IN PHW_STREAM_REQUEST_BLOCK pSrb )
{
    int                   i;
    PHW_DEVICE_EXTENSION  pDev = (PHW_DEVICE_EXTENSION)(pSrb->HwDeviceExtension);
    
    pSrb->Status = STATUS_SUCCESS;
    
    switch(pSrb->Command)
    {
    case SRB_INITIALIZE_DEVICE:
        pSrb->Status = InitializeDevice( pDev, pSrb->CommandData.ConfigInfo );
        break;      
    case SRB_UNINITIALIZE_DEVICE:
        {
    pSrb->Status = UnInitializeDevice(pDev);      
        }
        break;
    .
     .
     .

    }
    StreamClassDeviceNotification( DeviceRequestComplete, pSrb->HwDeviceExtension, pSrb );
}
我查过SRB的相关资料,里面并没有响应Pnp消息的命令码,现在我想在驱动中处理Pnp消息,应该怎么做。
游客

返回顶部