Windows C ++-DeviceIoControl을 사용하여 제품 문자열 반환

드류 플레처

Windows에서 DeviceIoControl을 사용하여 HID에 대한 "제품 문자열"을 반환하려고합니다. 내 코드는 다음과 같습니다.

for (int i = 0; i < nDevices; i++)
{
        wchar_t* productString = new wchar_t[POINTER_DEVICE_PRODUCT_STRING_MAX];
        HANDLE potentialUsbDevice = CreateFile(devInfoDataBuffer[i]->DevicePath, GENERIC_READ,
            NULL,
            NULL,
            OPEN_EXISTING,
            0,
            NULL);
        if (potentialUsbDevice != INVALID_HANDLE_VALUE) {
            DeviceIoControl(potentialUsbDevice, IOCTL_HID_GET_PRODUCT_STRING, 0, 0, productString, 0, 0, 0);
            wprintf(L"%s", productString);
        }
        delete[] productString;
        CloseHandle(potentialUsbDevice);
}

불행히도 나는 사람이 읽을 수있는 것을 얻지 못하고있다. 내 함수 호출에 문제가 있거나 포맷 문제입니까?

이 주제에 대한 귀하의 도움과 고려에 감사드립니다.

폴 샌더스

출력 버퍼의 크기 (바이트)를에 전달해야합니다 DeviceIoControl. 또한 lpBytesReturnedNULL이 아닌 것으로 전달해야 합니다.

DWORD bytes_returned;
DeviceIoControl (potentialUsbDevice, IOCTL_HID_GET_PRODUCT_STRING, 0, 0,
    productString, POINTER_DEVICE_PRODUCT_STRING_MAX * sizeof (wchar_t),
    &bytes_returned, 0);

또한 오류 (간결성을 위해 내 코드에 표시되지 않음)를 확인하고 진술 CloseHandle 내에서 호출 하십시오 if.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

DLL을 사용하여 C ++ 및 C # 간 문자열 교환

분류에서Dev

빈 문자열을 반환하는 문자열 함수 C ++

분류에서Dev

(C ++) 스택을 사용하여 문자열 반전?

분류에서Dev

`reverseStr ()`을 사용하여 C에서 문자열 반전

분류에서Dev

Windows CLI는 FINDSTR을 사용하여 문자열 뒤의 모든 항목 만 반환합니다.

분류에서Dev

지우기 기능을 사용하여 문자열에서 문자 제거-C ++

분류에서Dev

CTypes 및 Foreign을 사용하여 C 라이브러리에서 OCaml로 문자열 반환

분류에서Dev

ReactJS-맵을 사용하여 데이터 배열 소품을 반복하는 문제

분류에서Dev

정규식을 사용하여 날짜 문자열 반환

분류에서Dev

cut을 사용하여 문자열 중간 반환

분류에서Dev

HQL을 사용하여 문자열 반환

분류에서Dev

C ++ 문자열 조작을 C로 변환하는 문제

분류에서Dev

정수 쌍을 기반으로하는 C ++ 반환 문자열

분류에서Dev

C #을 사용하여 XML 문자열을 개체로 변환하는 방법

분류에서Dev

C에서 문자열 배열을 반환하는 함수

분류에서Dev

toString을 사용하여 숫자를 문자열로 변환하여 반전

분류에서Dev

C #에서 LINQ를 사용하여 JSON 문자열을 변환하는 방법

분류에서Dev

C #을 사용하여 십진수를 문자열로 변환하는 방법

분류에서Dev

ffi를 사용하여 lua 문자열을 C 문자열로 변환하는 동안 분할 오류

분류에서Dev

C #을 사용하여 Windows Phone 8 앱에서 XML을 문자열 유형 배열로 구문 분석

분류에서Dev

Roslyn을 사용하여 C # 문자열 값을 이스케이프 된 문자열 리터럴로 변환

분류에서Dev

리버스 문자열 (Leetcode) C ++를 사용하여 새 문자열을 메서드로 반환 할 수없는 이유

분류에서Dev

정규식을 사용하여 배열의 하위 문자열 반환

분류에서Dev

c # 여러 줄 문자열을 함수에 전달하고 배열 반환

분류에서Dev

Function을 사용하여 문자열을 반전하고 전체 문자열을 주 함수로 반환

분류에서Dev

C에서 C #으로 DeviceIoControl 호출 반환 값 구조 매핑 문제

분류에서Dev

사전을 사용하여 문자열을 문자로 변환

분류에서Dev

purrr / tidyverse를 사용하여 R의 매장 제품을 기반으로 시계열 모델을 반복 적용

분류에서Dev

연결된 문자열을 반환하는 C 함수

Related 관련 기사

  1. 1

    DLL을 사용하여 C ++ 및 C # 간 문자열 교환

  2. 2

    빈 문자열을 반환하는 문자열 함수 C ++

  3. 3

    (C ++) 스택을 사용하여 문자열 반전?

  4. 4

    `reverseStr ()`을 사용하여 C에서 문자열 반전

  5. 5

    Windows CLI는 FINDSTR을 사용하여 문자열 뒤의 모든 항목 만 반환합니다.

  6. 6

    지우기 기능을 사용하여 문자열에서 문자 제거-C ++

  7. 7

    CTypes 및 Foreign을 사용하여 C 라이브러리에서 OCaml로 문자열 반환

  8. 8

    ReactJS-맵을 사용하여 데이터 배열 소품을 반복하는 문제

  9. 9

    정규식을 사용하여 날짜 문자열 반환

  10. 10

    cut을 사용하여 문자열 중간 반환

  11. 11

    HQL을 사용하여 문자열 반환

  12. 12

    C ++ 문자열 조작을 C로 변환하는 문제

  13. 13

    정수 쌍을 기반으로하는 C ++ 반환 문자열

  14. 14

    C #을 사용하여 XML 문자열을 개체로 변환하는 방법

  15. 15

    C에서 문자열 배열을 반환하는 함수

  16. 16

    toString을 사용하여 숫자를 문자열로 변환하여 반전

  17. 17

    C #에서 LINQ를 사용하여 JSON 문자열을 변환하는 방법

  18. 18

    C #을 사용하여 십진수를 문자열로 변환하는 방법

  19. 19

    ffi를 사용하여 lua 문자열을 C 문자열로 변환하는 동안 분할 오류

  20. 20

    C #을 사용하여 Windows Phone 8 앱에서 XML을 문자열 유형 배열로 구문 분석

  21. 21

    Roslyn을 사용하여 C # 문자열 값을 이스케이프 된 문자열 리터럴로 변환

  22. 22

    리버스 문자열 (Leetcode) C ++를 사용하여 새 문자열을 메서드로 반환 할 수없는 이유

  23. 23

    정규식을 사용하여 배열의 하위 문자열 반환

  24. 24

    c # 여러 줄 문자열을 함수에 전달하고 배열 반환

  25. 25

    Function을 사용하여 문자열을 반전하고 전체 문자열을 주 함수로 반환

  26. 26

    C에서 C #으로 DeviceIoControl 호출 반환 값 구조 매핑 문제

  27. 27

    사전을 사용하여 문자열을 문자로 변환

  28. 28

    purrr / tidyverse를 사용하여 R의 매장 제품을 기반으로 시계열 모델을 반복 적용

  29. 29

    연결된 문자열을 반환하는 C 함수

뜨겁다태그

보관