use of com.sun.jna.platform.win32.WinDef.DWORDByReference in project jna by java-native-access.
the class PdhTest method testQueryOneCounter.
@Test
public void testQueryOneCounter() {
PDH_COUNTER_PATH_ELEMENTS elems = new PDH_COUNTER_PATH_ELEMENTS();
elems.szObjectName = "Processor";
elems.szInstanceName = "_Total";
elems.szCounterName = "% Processor Time";
String counterName = makeCounterPath(pdh, elems);
HANDLEByReference ref = new HANDLEByReference();
assertErrorSuccess("PdhOpenQuery", pdh.PdhOpenQuery(null, null, ref), true);
HANDLE hQuery = ref.getValue();
try {
ref.setValue(null);
assertErrorSuccess("PdhAddEnglishCounter", pdh.PdhAddEnglishCounter(hQuery, counterName, null, ref), true);
HANDLE hCounter = ref.getValue();
try {
assertErrorSuccess("PdhCollectQueryData", pdh.PdhCollectQueryData(hQuery), true);
DWORDByReference lpdwType = new DWORDByReference();
PDH_RAW_COUNTER rawCounter = new PDH_RAW_COUNTER();
assertErrorSuccess("PdhGetRawCounterValue", pdh.PdhGetRawCounterValue(hCounter, lpdwType, rawCounter), true);
assertEquals("Bad counter data status", PdhMsg.PDH_CSTATUS_VALID_DATA, rawCounter.CStatus);
DWORD dwType = lpdwType.getValue();
int typeValue = dwType.intValue();
// see https://technet.microsoft.com/en-us/library/cc786359(v=ws.10).aspx
assertEquals("Mismatched counter type", WinPerf.PERF_100NSEC_TIMER_INV, typeValue);
showRawCounterData(System.out, counterName, rawCounter);
} finally {
assertErrorSuccess("PdhRemoveCounter", pdh.PdhRemoveCounter(hCounter), true);
}
} finally {
assertErrorSuccess("PdhCloseQuery", pdh.PdhCloseQuery(hQuery), true);
}
}
use of com.sun.jna.platform.win32.WinDef.DWORDByReference in project jna by java-native-access.
the class PdhTest method makeCounterPath.
private static String makeCounterPath(Pdh pdh, PDH_COUNTER_PATH_ELEMENTS pathElements) {
DWORDByReference pcchBufferSize = new DWORDByReference();
int status = pdh.PdhMakeCounterPath(pathElements, null, pcchBufferSize, 0);
assertEquals("Unexpected status code: 0x" + Integer.toHexString(status), PdhMsg.PDH_MORE_DATA, status);
DWORD bufSize = pcchBufferSize.getValue();
int numChars = bufSize.intValue();
assertTrue("Bad required buffer size: " + numChars, numChars > 0);
char[] szFullPathBuffer = new char[numChars + 1];
pcchBufferSize.setValue(new DWORD(szFullPathBuffer.length));
assertErrorSuccess("PdhMakeCounterPath", pdh.PdhMakeCounterPath(pathElements, szFullPathBuffer, pcchBufferSize, 0), true);
return Native.toString(szFullPathBuffer);
}
use of com.sun.jna.platform.win32.WinDef.DWORDByReference in project jna by java-native-access.
the class Dxva2Test method setUp.
@Before
public void setUp() {
HMONITOR hMonitor = User32.INSTANCE.MonitorFromWindow(User32.INSTANCE.GetDesktopWindow(), WinUser.MONITOR_DEFAULTTOPRIMARY);
DWORDByReference pdwNumberOfPhysicalMonitors = new DWORDByReference();
assertTrue(Dxva2.INSTANCE.GetNumberOfPhysicalMonitorsFromHMONITOR(hMonitor, pdwNumberOfPhysicalMonitors).booleanValue());
monitorCount = pdwNumberOfPhysicalMonitors.getValue().intValue();
physMons = new PHYSICAL_MONITOR[monitorCount];
assumeTrue(Dxva2.INSTANCE.GetPhysicalMonitorsFromHMONITOR(hMonitor, monitorCount, physMons).booleanValue());
}
use of com.sun.jna.platform.win32.WinDef.DWORDByReference in project jna by java-native-access.
the class Kernel32DiskManagementFunctionsTest method testGetDiskFreeSpace.
private void testGetDiskFreeSpace(String lpRootPathName) {
DWORDByReference lpSectorsPerCluster = new DWORDByReference();
DWORDByReference lpBytesPerSector = new DWORDByReference();
DWORDByReference lpNumberOfFreeClusters = new DWORDByReference();
DWORDByReference lpTotalNumberOfClusters = new DWORDByReference();
assertCallSucceeded("GetDiskFreeSpace(" + lpRootPathName + ")", Kernel32.INSTANCE.GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters));
// System.out.append(getCurrentTestName()).append('[').append(lpRootPathName).println(']');
// System.out.append('\t').append("SectorsPerCluster: ").println(lpSectorsPerCluster.getValue());
// System.out.append('\t').append("BytesPerSector: ").println(lpBytesPerSector.getValue());
// System.out.append('\t').append("NumberOfFreeClusters: ").println(lpNumberOfFreeClusters.getValue());
// System.out.append('\t').append("TotalNumberOfClusters: ").println(lpTotalNumberOfClusters.getValue());
DWORD freeSize = lpNumberOfFreeClusters.getValue();
assertTrue("No free clusters for " + lpRootPathName, freeSize.longValue() > 0L);
DWORD totalSize = lpTotalNumberOfClusters.getValue();
assertTrue("Free clusters (" + freeSize + ") not below total (" + totalSize + ") for " + lpRootPathName, freeSize.longValue() < totalSize.longValue());
}
use of com.sun.jna.platform.win32.WinDef.DWORDByReference in project jna by java-native-access.
the class Dxva2Test method testGetMonitorContrast.
@Test
public void testGetMonitorContrast() {
HANDLE hPhysicalMonitor = physMons[0].hPhysicalMonitor;
// the method returns FALSE if the monitor driver doesn't support it,
// but verifies that the JNA mapping is correct (no exception)
DWORDByReference pdwMinimumContrast = new DWORDByReference();
DWORDByReference pdwCurrentContrast = new DWORDByReference();
DWORDByReference pdwMaximumContrast = new DWORDByReference();
Dxva2.INSTANCE.GetMonitorContrast(hPhysicalMonitor, pdwMinimumContrast, pdwCurrentContrast, pdwMaximumContrast);
}
Aggregations