본문 바로가기

삽질

미니필터에서 유저모드 함수 FilterSendMessage

Minifilter를 사용할때 유저모드 어플리케이션에서 FilterSendMessage로 필터로 메세지를 보내고 받을때

HRESULT
WINAPI

  FilterSendMessage(
    IN HANDLE  hPort,
    IN LPVOID  lpInBuffer OPTIONAL,
    IN DWORD  dwInBufferSize,
    IN OUT LPVOID  lpOutBuffer OPTIONAL,
    IN DWORD  dwOutBufferSize,
    OUT LPDWORD  lpBytesReturned
    ); 

lpInBuffer과 dwInBufferSize를 NULL, 0 으로 잡고 필터에 메세지를 보냈더니 리턴되는 HRESULT 값에 E_INVALIDARG 값으로 에러가 리턴되어 왔다. 분명히 WDK문서를 봐도 NULL이 될수 있다고 하는데 이상하다.

그래서 아무문자나 InBuffer에 입력하고 그 문자열 길이를 dwInBufferSize에 넣어주니 잘 동작한다.

검색해보니 나랑 비슷한 사례가 있다.

https://www.osronline.com/ShowThread.cfm?link=128683