#include "ddk/ntddbeep.h" #include "sys/ioctl.h" #include int beep(ULONG frequency, ULONG duration) { FILE *beepdevice = stdin; BEEP_SET_PARAMETERS parameters; parameters.Frequency = frequency; parameters.Duration = duration; if ((beepdevice = fopen("/dev/bp0", "r+")) == NULL) return(1); fprintf(stderr, "debug: filehandle=0x%x\n", fileno(beepdevice)); if ((ioctl(fileno(beepdevice), IOCTL_BEEP_SET, ¶meters)) == -1) return(2); return(0); } int main(int argc, char **argv) { ULONG frequency, duration; int status; if (argc != 3) { fprintf(stderr, "Usage: %s %s %s\n", argv[0], "FREQUENCY", "DURATION"); return(0); } frequency = atol(argv[1]); duration = atol(argv[2]); if (status = beep(frequency, duration) > 0) perror("Cannot beep"); return(status); }