⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
#include <stdio.h>
#include <windows.h>
#include <ntddk.h>
#include "mpu401.h"

int main()
{
//    NTSTATUS s;
//    PHANDLE Handle;
//    PIO_STATUS_BLOCK Status;
    DWORD BytesReturned;
    BYTE Test[3]; // Will store MIDI data
    BYTE Notes[] = {50, 52, 54, 55, 57, 59, 61};
    HANDLE Device;
    UINT Note;
    UINT Junk;

    printf("Test program for MPU401 driver\n");

    Device = CreateFile("\\\\.\\MPU401_Out_0", GENERIC_READ | GENERIC_WRITE,
                        FILE_SHARE_READ | FILE_SHARE_WRITE,
                        NULL,
                        OPEN_EXISTING,
                        FILE_FLAG_NO_BUFFERING,
                        NULL);

    if (Device == INVALID_HANDLE_VALUE)
    {
        printf("Device is busy or could not be found.\n");
        return -1;
    }

    printf("Device is open, let's play some music...\n");

        Test[0] = 0x90;
        Test[2] = 0x7f;

    for (Note = 0; Note < sizeof(Notes); Note ++)
    {
        Test[1] = Notes[Note];

    DeviceIoControl(
        Device,
        IOCTL_MIDI_PLAY,
        &Test,
        sizeof(Test),
        NULL,
        0,
        &BytesReturned,
        NULL
        );

        for (Junk = 0; Junk < 100000; Junk ++);   // Pause
    }


/*    s = IoCreateFile(Handle, GENERIC_READ | GENERIC_WRITE,
                     OBJ_KERNEL_HANDLE,
                     Status,
                     0,
                     FILE_SHARE_READ | FILE_SHARE_WRITE,
                     FILE_OPEN,
                     FILE_NON_DIRECTORY_FILE,
                     NULL,
                     0,
                     CreateFileTypeNone,
                     NULL,
                     0);
*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -