IRP가 완전히 손상되어 IRP 모니터와 같은 프로그램에서보고있는 경우 IRP_MJ_READ 또는 IRP_MJ_WRITE와 같이이 IRP가 연결된 기능을 어떻게 알 수 있습니까?IO 요청 패킷이 주어지면 어떤 기능이 관련되어 있는지 어떻게 알 수 있습니까? 예 : IRP_MJ_READ
1
A
답변
1
IRP
그 자체로는 어떤 기능과도 관련이 없습니다. 모든 IRP
는 적어도 하나의 I/O Stack Locations을 - 그리고 IO_STACK_LOCATION
구조의 시작에서 당신은
UCHAR MajorFunction;
UCHAR MinorFunction;
MajorFunction
I/O 작업의 형태를 나타내는 IRP 주요 기능 코드가 수행 할 볼 수 있습니다.
여기서 정확히 IRP_MJ_XXX
입니다. 그러나 복잡한 IRP는 스택 위치가 여러 개이고 다른 위치는 MajorFunction
이 다를 수 있습니다. 파일 시스템이나 디스크 드라이버를 처음에 (상단 스택에) 설정 한 IRP가 IRP_MJ_WRITE
(또는 읽음)이라고합시다. 그러나 디스크 드라이버가이 irp를 포트 드라이버에 전송할 때 - 이미 IRP_MJ_SCSI
이 스택에 설정되어 있습니다.
관련 문제
- 1. 어떤 헤더에서 어떤 기능이 사용되고 있는지 어떻게 알 수 있습니까?
- 2. 어떻게 실행 파일에 어떤 기능이 있는지 알 수 있습니까?
- 3. 어떤 기능이 호출되는지 어떻게 알 수 있습니까?
- 4. Wireshark 패킷이 암호화되어 있는지 어떻게 알 수 있습니까?
- 5. 파이썬에서 클래스가 주어지면 어떤 모듈이 있었는지 어떻게 알 수 있습니까?
- 6. 어떤 eclipse SDK가 사용되고 있는지 어떻게 알 수 있습니까?
- 7. IndexedDB에서 어떤 데이터베이스를 사용할 수 있는지 어떻게 알 수 있습니까?
- 8. 어떤 TextView가 어떤 배열에 연결되어 있는지 어떻게 알 수 있습니까?
- 9. 어떤 overlayitem이 탭되고 있는지 어떻게 알 수 있습니까?
- 10. 요청/응답을 Application_Error에서 사용할 수 있는지 어떻게 알 수 있습니까?
- 11. 어떤 조건이 true로 기본 설정되어 있는지 어떻게 알 수 있습니까?
- 12. 안드로이드 장치에 오디오 기능이 있는지 어떻게 알 수 있습니까?
- 13. Android에 Intent 추가 기능이 있는지 어떻게 알 수 있습니까?
- 14. DOM 요소에 어떤 이벤트가 바인딩되어 있는지 어떻게 알 수 있습니까?
- 15. 어떤 SMTP 서버가 사용되고 있는지 어떻게 알 수 있습니까?
- 16. 종속성 워커는 모듈의 어떤 기능이 사용되는지 어떻게 알 수 있습니까?
- 17. 패키지가 주어지면 그 아티팩트가 무엇이어야하는지 어떻게 알 수 있습니까?
- 18. 테이블에 어떤 유형의 잠금이 있는지 어떻게 알 수 있습니까?
- 19. Emacs에서 어떤 OS를 실행하고 있는지 어떻게 알 수 있습니까?
- 20. 어떤 스크립트가 fopen을 사용하고 있는지 어떻게 알 수 있습니까?
- 21. 어떤 유닉스 쉘을 사용하고 있는지 어떻게 알 수 있습니까?
- 22. 사용자가 어떤 운영 체제를 사용하고 있는지 어떻게 알 수 있습니까?
- 23. 어떤 템플릿을 사용하고 있는지 어떻게 알 수 있습니까?
- 24. 현재 어떤 활동이 열려 있는지 어떻게 알 수 있습니까?
- 25. 이 코드에 어떤 색상이 있는지 어떻게 알 수 있습니까?
- 26. 파일이 어떤 물리적 드라이브에 있는지 어떻게 알 수 있습니까?
- 27. 어떤 dsn 드라이버가 사용되고 있는지 어떻게 알 수 있습니까?
- 28. 크롬 앱에서 어떤 운영체제를 사용하고 있는지 어떻게 알 수 있습니까?
- 29. 어떤 포트를 사용하고 있는지 어떻게 알 수 있습니까?
- 30. UITableViewCell viewWithTag 어떤 셀이 편집되고 있는지 어떻게 알 수 있습니까?
Ok 그렇다면 하나의 IRP 만 사용하면 어떤 기능이 사용되었는지 정확히 알 수 없습니까? 또는 IRP가 마지막으로 어느 드라이버에서 왔는지 결정한 다음 IO 스택을 검사하여 파악할 수 있습니까? –
@the_endian - "주어진 IRP"에서 무엇을 의미합니까? IPR에는이 IRP를 처리하는 소유자 드라이버가있을 때마다 그는 그 IRP를 조작하고 액세스 할 수 있습니다. 드라이버는 현재 스택 위치를 사용합니다 ('IoGetCurrentIrpStackLocation'을 찾으십시오). IRP가있는 곳에서? 어쨌든 현재 스택 위치를 찾을 필요가 있습니다 -'Irp-> Tail.Overlay.CurrentStackLocation' – RbMm
지금 받으십시오. 고맙습니다! –