Changeset 19844 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
- Timestamp:
- May 19, 2009 11:12:55 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 47505
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
r19711 r19844 1875 1875 break; 1876 1876 } 1877 case IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS: 1878 { 1879 dprintf(("VBoxVideo::VBoxVideoStartIO: IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS\n")); 1880 1881 if (RequestPacket->OutputBufferLength < sizeof(HGSMIQUERYCALLBACKS)) 1882 { 1883 dprintf(("VBoxVideo::VBoxVideoStartIO: Output buffer too small: %d needed: %d!!!\n", 1884 RequestPacket->OutputBufferLength, sizeof(HGSMIQUERYCALLBACKS))); 1885 RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER; 1886 return FALSE; 1887 } 1888 1889 if (!pDevExt->pPrimary->u.primary.bHGSMI) 1890 { 1891 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; 1892 return FALSE; 1893 } 1894 1895 HGSMIQUERYCALLBACKS *pInfo = (HGSMIQUERYCALLBACKS *)RequestPacket->OutputBuffer; 1896 1897 pInfo->hContext = pDevExt->pPrimary; 1898 pInfo->pfnCompletionHandler = hgsmiHostCmdHandlerComplete; 1899 1900 RequestPacket->StatusBlock->Information = sizeof(HGSMIQUERYCALLBACKS); 1901 Result = TRUE; 1902 break; 1903 } 1904 case IOCTL_VIDEO_HGSMI_HANDLER_REGISTER: 1905 { 1906 dprintf(("VBoxVideo::VBoxVideoStartIO: IOCTL_VIDEO_HGSMI_HANDLER_REGISTER\n")); 1907 1908 if (RequestPacket->InputBufferLength< sizeof(HGSMIHANDLERREGISTER)) 1909 { 1910 dprintf(("VBoxVideo::VBoxVideoStartIO: Output buffer too small: %d needed: %d!!!\n", 1911 RequestPacket->InputBufferLength, sizeof(HGSMIHANDLERREGISTER))); 1912 RequestPacket->StatusBlock->Status = ERROR_INSUFFICIENT_BUFFER; 1913 return FALSE; 1914 } 1915 1916 if (!pDevExt->pPrimary->u.primary.bHGSMI) 1917 { 1918 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; 1919 return FALSE; 1920 } 1921 1922 HGSMIHANDLERREGISTER *pInfo = (HGSMIHANDLERREGISTER *)RequestPacket->InputBuffer; 1923 1924 int rc = vboxHGSMIChannelDisplayRegister (pDevExt->pPrimary, 1925 pDevExt->iDevice, /* negative would mean this is a miniport handler */ 1926 pInfo->u8Channel, 1927 pInfo->pfnHandler, 1928 pInfo->pvHandler); 1929 if(RT_FAILURE(rc)) 1930 { 1931 RequestPacket->StatusBlock->Status = ERROR_INVALID_NAME; 1932 } 1933 Result = TRUE; 1934 break; 1935 } 1936 case IOCTL_VIDEO_HGSMI_HANDLER_DEREGISTER: 1937 { 1938 /* TODO: implement */ 1939 if (!pDevExt->pPrimary->u.primary.bHGSMI) 1940 { 1941 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; 1942 return FALSE; 1943 } 1944 break; 1945 } 1877 1946 #endif /* VBOX_WITH_HGSMI */ 1878 1947
Note:
See TracChangeset
for help on using the changeset viewer.