Windows 드라이버에서 WMI 메서드를 실행하는 예

그들의

Windows 드라이버에서 WMI 메서드를 실행하는 방법에 대한 예를 찾고 있습니다. MY_WMI_CLASS 클래스에서 TestFunction 을 호출해야합니다.

[WMI, dynamic: ToInstance, provider("xxx"), Locale("some"), Description("test xxx"), guid("{someguidhere}")]
class MY_WMI_CLASS
{
    [key, read] string InstanceName;
    [read] boolean Active;
    [WmiMethodId(1), 
          Implemented, 
          Description("Test xxx")] 
          void TestFunction([out, Description("Test f")] uint32 Data);
};

MSDN에 전화해야한다고

IoWMIQueryAllData, https://msdn.microsoft.com/en-us/library/windows/hardware/ff550453(v=vs.85).aspx

IoWMIExecuteMethod, https://msdn.microsoft.com/en-us/library/windows/hardware/ff550438(v=vs.85).aspx

기능. IoWMIExecuteMethod 함수에는 가져 오는 방법을 모르는 InstanceName 매개 변수가 있습니다.

NTSTATUS IoWMIExecuteMethod(
  _In_    PVOID           DataBlockObject,
  _In_    PUNICODE_STRING InstanceName,
  _In_    ULONG           MethodId,
  _In_    ULONG           InBufferSize,
  _Inout_ PULONG          OutBufferSize,
  _Inout_ PUCHAR          InOutBuffer
);
그들의

내 질문에 대한 답을 찾았습니다.

    PVOID       wmiObject = NULL;
    ULONG       allocSize = 100;
    UCHAR       pBuffer[100] = ;

    //Open block
    rc = IoWMIOpenBlock(&guid, WMIGUID_EXECUTE, &wmiObject);

    //get instance name
    rc = IoWMIQueryAllData(wmiObject, &allocSize, pBuffer);


    WNODE_ALL_DATA *pWNode = (WNODE_ALL_DATA*)pBuffer;
    ULONG offset = *((PULONG)(pBuffer + pWNode->OffsetInstanceNameOffsets));
    PWCHAR str = (PWCHAR)(pBuffer + offset + 2);

    UNICODE_STRING uniInstanceName = { 0 };
    RtlInitUnicodeString(&uniInstanceName, str);

    UINT8 data[100];
    size = 100;

    //execute a method 
    rc = IoWMIExecuteMethod(wmiObject, &uniInstanceName, 1, 0, &size, data);

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

wmi를 사용하여 NDIS 드라이버에서 쿼리 OID 트리거

분류에서Dev

Mac에서 Wine을 실행하여 Windows 드라이버 작동

분류에서Dev

Windows 7에서 WMI 복구

분류에서Dev

Windows Server 백업 드라이브에서 chkdsk를 실행하는 방법

분류에서Dev

Windows에서 Apache Zookeeper 서버를 백그라운드 서비스로 실행하는 방법

분류에서Dev

Virtualbox를 사용하여 외장 하드 드라이브에서 Ubuntu 및 Windows 10을 실행하는 방법

분류에서Dev

Windows 10에 드라이버를 설치하여 여러 컴퓨터에서 실행할 수 있습니까?

분류에서Dev

매일 특정 시간에 메서드를 실행하는 코드 C # (Windows Service) 실패

분류에서Dev

ExpoPermissions 모듈에서 내 보낸 메서드 askAsync를 실행하는 동안 예외 발생 : null

분류에서Dev

Windows 10에서 Windows 7 드라이버를 사용하는 방법

분류에서Dev

Windows 10에서 Windows 7 드라이버를 사용하는 방법

분류에서Dev

예외에서 파이썬 스크립트를 실행하고 매일 Windows 서버를 재부팅하는 방법은 무엇입니까?

분류에서Dev

메서드를 실행하거나 예외를 발생시키는 Python 데코레이터

분류에서Dev

WMI 개체를 사용하여 특정 Windows 서비스 선택

분류에서Dev

메서드 (Java)에서 예외를 throw 할 수없는 이유

분류에서Dev

PHP : 백그라운드에서 Batch-Script를 실행하는 방법 [Windows]

분류에서Dev

Windows 8 모드에서 Chrome Canary를 실행하는 방법

분류에서Dev

앱이 백그라운드에서 실행 중일 때 (예 : 홈 버튼을 누를 때) 음악 중지

분류에서Dev

wsl에서 Windows 앱 (예 : VSCode) 실행

분류에서Dev

Windows 8.1에서 특정 드라이버를 차단하는 방법

분류에서Dev

Microsoft Fakes를 사용하는 단위 테스트를 실행할 수 없음-ShimsContext.Create () 메서드의 예외

분류에서Dev

Windows 10 (1703/1809)에서 네트워크 드라이브 실행 응용 프로그램이 임의로 충돌하여 0xc0000006 예외 또는 "오류를 처리 할 수 없음"오류가보고 됨

분류에서Dev

StdRegProv WMI 클래스 및 GetStringValue 메서드가 결과를 반환하지 않음

분류에서Dev

메서드가 인터페이스를 예상하는 메서드에 클래스를 전달하는 문제

분류에서Dev

Windows에서 자동으로 실행되도록 노드 js 스크립트를 예약하는 방법은 무엇입니까?

분류에서Dev

CD 실행 파일 또는 장치 관리자에서 Windows 7에 드라이버 설치

분류에서Dev

외장 하드 드라이브에서 Windows 10을 실행하는 방법은 무엇입니까?

분류에서Dev

LINQ IQueryable 메서드를 실행할 때 Stackoverflow 예외 발생

분류에서Dev

C #에서 WMI 쿼리를 사용하여 드라이브 문자를 통해 HDD 일련 번호 얻기

Related 관련 기사

  1. 1

    wmi를 사용하여 NDIS 드라이버에서 쿼리 OID 트리거

  2. 2

    Mac에서 Wine을 실행하여 Windows 드라이버 작동

  3. 3

    Windows 7에서 WMI 복구

  4. 4

    Windows Server 백업 드라이브에서 chkdsk를 실행하는 방법

  5. 5

    Windows에서 Apache Zookeeper 서버를 백그라운드 서비스로 실행하는 방법

  6. 6

    Virtualbox를 사용하여 외장 하드 드라이브에서 Ubuntu 및 Windows 10을 실행하는 방법

  7. 7

    Windows 10에 드라이버를 설치하여 여러 컴퓨터에서 실행할 수 있습니까?

  8. 8

    매일 특정 시간에 메서드를 실행하는 코드 C # (Windows Service) 실패

  9. 9

    ExpoPermissions 모듈에서 내 보낸 메서드 askAsync를 실행하는 동안 예외 발생 : null

  10. 10

    Windows 10에서 Windows 7 드라이버를 사용하는 방법

  11. 11

    Windows 10에서 Windows 7 드라이버를 사용하는 방법

  12. 12

    예외에서 파이썬 스크립트를 실행하고 매일 Windows 서버를 재부팅하는 방법은 무엇입니까?

  13. 13

    메서드를 실행하거나 예외를 발생시키는 Python 데코레이터

  14. 14

    WMI 개체를 사용하여 특정 Windows 서비스 선택

  15. 15

    메서드 (Java)에서 예외를 throw 할 수없는 이유

  16. 16

    PHP : 백그라운드에서 Batch-Script를 실행하는 방법 [Windows]

  17. 17

    Windows 8 모드에서 Chrome Canary를 실행하는 방법

  18. 18

    앱이 백그라운드에서 실행 중일 때 (예 : 홈 버튼을 누를 때) 음악 중지

  19. 19

    wsl에서 Windows 앱 (예 : VSCode) 실행

  20. 20

    Windows 8.1에서 특정 드라이버를 차단하는 방법

  21. 21

    Microsoft Fakes를 사용하는 단위 테스트를 실행할 수 없음-ShimsContext.Create () 메서드의 예외

  22. 22

    Windows 10 (1703/1809)에서 네트워크 드라이브 실행 응용 프로그램이 임의로 충돌하여 0xc0000006 예외 또는 "오류를 처리 할 수 없음"오류가보고 됨

  23. 23

    StdRegProv WMI 클래스 및 GetStringValue 메서드가 결과를 반환하지 않음

  24. 24

    메서드가 인터페이스를 예상하는 메서드에 클래스를 전달하는 문제

  25. 25

    Windows에서 자동으로 실행되도록 노드 js 스크립트를 예약하는 방법은 무엇입니까?

  26. 26

    CD 실행 파일 또는 장치 관리자에서 Windows 7에 드라이버 설치

  27. 27

    외장 하드 드라이브에서 Windows 10을 실행하는 방법은 무엇입니까?

  28. 28

    LINQ IQueryable 메서드를 실행할 때 Stackoverflow 예외 발생

  29. 29

    C #에서 WMI 쿼리를 사용하여 드라이브 문자를 통해 HDD 일련 번호 얻기

뜨겁다태그

보관