DXGKCB_QUEUE_DPC callback function

DXGKCB_QUEUE_DPC callback function

DxgkCbQueueDpc会queue一个DPC在 IRQL DISPATCH_LEVEL上执行。

Syntax

DXGKCB_QUEUE_DPC DxgkcbQueueDpc;

BOOLEAN DxgkcbQueueDpc(
  HANDLE DeviceHandle
)
{...}

Parameters

DeviceHandle

代表显卡的句柄,KMD之前在DxgkDdiStartDevice的DXGKRNL_INTERFACE参数成员DeviceHandle中获得这个句柄。

Return Value

DxgkCbQueueDpc returns TRUE if the DPC is successfully queued; otherwise it returns FALSE.

Remarks

当ISR调用时,该函数为KMD queue 一个DPC并且之后会调用DxgkDdiDpcRoutine

对于这个设备同时只能调用一个回调函数,如果一个设备的回调正准备被调度,这时又有DxgkCbQueueDpc调用,则会返回FALSE并且不会有任何效果。

For more information on the use of this function, see these topics:

Requirements

  
Minimum supported clientAvailable in Windows Vista and later versions of the Windows operating systems.
Target PlatformDesktop
Headerdispmprt.h (include Dispmprt.h)
IRQLAny level
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这段代码包含了一系列函数调用和任务创建,用于初始化设备并启动相关功能。下面是每个函数调用的简要解释: 1. `xQueueCreate(10, sizeof(D_MsgData))`:创建一个队列 `g_usif_queue`,队列大小为 10,每个元素大小为 `D_MsgData` 的字节大小。 2. `d_ble_register_callback(ble_user_callback)`:注册 BLE 回调函数 `ble_user_callback`。 3. `d_sensor_data_register_callback(sensor_data_user_callback)`:注册传感器数据回调函数 `sensor_data_user_callback`。 4. `d_timer_register_callback(timer_user_callback)`:注册定时器回调函数 `timer_user_callback`。 5. `d_uart_register_callback(uart_user_callback, LOOKUP_STR_OK, LOOKUP_STR_ERR, LOOKUP_STR_NEW_MSG, CAN_SEND_DATA_2_IOT)`:注册 UART 回调函数 `uart_user_callback`,并传递一些字符串参数。 6. `d_iot_timeout_timer_register_callback(iot_timeout_timer_user_callback)`:注册物联网超时定时器回调函数 `iot_timeout_timer_user_callback`。 7. `d_acc_gpiote_interrupt_disable()`:禁用加速度计 GPIO 中断。 8. `d_lcd_display_str(D_LCD_DISPLAY_STR_BOOT, 0)`:在 LCD 上显示启动信息。 9. `d_led_light_on(D_LED_LIGHT_RED)`:点亮红色 LED 灯。 10. `nrf_delay_us(5000000)`:延迟 5000000 微秒(5秒)。 11. `d_led_light_off(D_LED_LIGHT_RED)`:关闭红色 LED 灯。 12. `d_led_uninit()`:关闭 LED 灯。 13. `d_alarm_off()`:关闭报警功能。 14. `d_acc_gpiote_interrupt_enable()`:启用加速度计 GPIO 中断。 15. `d_power_register_callback(power_off_user_callback)`:注册电源关闭回调函数 `power_off_user_callback`。 16. `d_acc_register_callback(acc_user_callback)`:注册加速度计回调函数 `acc_user_callback`。 17. `d_lcd_clean()`:清空 LCD 屏幕。 18. `xTaskCreate(d_usif_task, "d_usif_task", 256*3, g_usif_queue, 2, &xHandle_usif_task)`:创建一个任务 `d_usif_task`,任务名为 "d_usif_task",任务栈大小为 256*3 字节,传递 `g_usif_queue` 给任务作为参数,优先级为 2,并将任务句柄保存在 `xHandle_usif_task` 中。 19. `configASSERT(xHandle_usif_task)`:确保任务创建成功。 20. `d_sensor_data_send_start()`:启动传感器数据发送。 21. `d_uart_clear_data_buf()`:清空 UART 数据缓冲区。 综上所述,这段代码的作用是初始化设备和相关功能,并创建一个名为 "d_usif_task" 的任务。具体的实现细节可能需要参考相关函数的定义和文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值