Changeset 51103 in vbox for trunk/src/VBox/Devices/Storage
- Timestamp:
- Apr 18, 2014 10:13:25 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 93385
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r48947 r51103 614 614 { 615 615 return CFGMR3QueryString((PCFGMNODE)pvUser, pszName, pszString, cchString); 616 } 617 618 static int drvvdCfgQueryBytes(void *pvUser, const char *pszName, void *ppvData, size_t cbData) 619 { 620 return CFGMR3QueryBytes((PCFGMNODE)pvUser, pszName, ppvData, cbData); 616 621 } 617 622 … … 1926 1931 } 1927 1932 1933 /** 1934 * Sets up the disk filter chain. 1935 * 1936 * @returns VBox status code. 1937 * @param pThis The disk instance. 1938 * @param pCfg CFGM node holding the filter parameters. 1939 */ 1940 static int drvvdSetupFilters(PVBOXDISK pThis, PCFGMNODE pCfg) 1941 { 1942 int rc = VINF_SUCCESS; 1943 PCFGMNODE pCfgFilter = CFGMR3GetChild(pCfg, "Filters"); 1944 1945 if (pCfgFilter) 1946 { 1947 PCFGMNODE pCfgFilterConfig = CFGMR3GetChild(pCfgFilter, "VDConfig"); 1948 char *pszFilterName = NULL; 1949 VDINTERFACECONFIG VDIfConfig; 1950 PVDINTERFACE pVDIfsFilter = NULL; 1951 1952 rc = CFGMR3QueryStringAlloc(pCfgFilter, "FilterName", &pszFilterName); 1953 if (RT_SUCCESS(rc)) 1954 { 1955 VDIfConfig.pfnAreKeysValid = drvvdCfgAreKeysValid; 1956 VDIfConfig.pfnQuerySize = drvvdCfgQuerySize; 1957 VDIfConfig.pfnQuery = drvvdCfgQuery; 1958 VDIfConfig.pfnQueryBytes = drvvdCfgQueryBytes; 1959 rc = VDInterfaceAdd(&VDIfConfig.Core, "DrvVD_Config", VDINTERFACETYPE_CONFIG, 1960 pCfgFilterConfig, sizeof(VDINTERFACECONFIG), &pVDIfsFilter); 1961 AssertRC(rc); 1962 1963 rc = VDFilterAdd(pThis->pDisk, pszFilterName, pVDIfsFilter); 1964 1965 MMR3HeapFree(pszFilterName); 1966 } 1967 } 1968 1969 return rc; 1970 } 1971 1928 1972 /******************************************************************************* 1929 1973 * Base interface methods * … … 2564 2608 pImage->VDIfConfig.pfnQuerySize = drvvdCfgQuerySize; 2565 2609 pImage->VDIfConfig.pfnQuery = drvvdCfgQuery; 2610 pImage->VDIfConfig.pfnQueryBytes = NULL; 2566 2611 rc = VDInterfaceAdd(&pImage->VDIfConfig.Core, "DrvVD_Config", VDINTERFACETYPE_CONFIG, 2567 2612 pCfgVDConfig, sizeof(VDINTERFACECONFIG), &pImage->pVDIfsImage); … … 2851 2896 } 2852 2897 } 2898 2899 if (RT_SUCCESS(rc)) 2900 rc = drvvdSetupFilters(pThis, pCfg); 2853 2901 2854 2902 /*
Note:
See TracChangeset
for help on using the changeset viewer.