Mercurial > mplayer.hg
view libdha/sysdep/pci_win32.c @ 15978:c8dc500e078e
memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap.
Committed with the kind blessing of Richard, patch by uau
author | gpoirier |
---|---|
date | Fri, 15 Jul 2005 22:09:30 +0000 |
parents | 3a727f52c4a2 |
children | fd0d4b94b5ec |
line wrap: on
line source
/* This file is based on: $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $ Modified for readability by Nick Kurshev */ #include <windows.h> #include <ddk/ntddk.h> #include "../dhahelperwin/dhahelper.h" static HANDLE hDriver; extern int IsWinNT(); static __inline__ int enable_os_io(void) { if(IsWinNT()){ DWORD dwBytesReturned; hDriver = CreateFile("\\\\.\\DHAHELPER",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(!DeviceIoControl(hDriver, IOCTL_DHAHELPER_ENABLEDIRECTIO, NULL,0, NULL, 0, &dwBytesReturned, NULL)){ printf("unable to enable directio please install dhahelper.sys\n"); return(1); } } return(0); } static __inline__ int disable_os_io(void) { if(IsWinNT()){ DWORD dwBytesReturned; DeviceIoControl(hDriver, IOCTL_DHAHELPER_DISABLEDIRECTIO, NULL,0, NULL, 0, &dwBytesReturned, NULL); CloseHandle(hDriver); } return(0); }