RxFsdPostRequest 함수(rxprocs.h)
RxFsdPostRequest 는 FSP(파일 시스템 프로세스)에서 처리하기 위해 작업자 큐에 RX_CONTEXT 구조로 지정된 IRP(I/O 요청 패킷)를 큐에 대기합니다.
구문
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
매개 변수
[in] RxContext
작업자 스레드에 큐에 대기할 IRP를 포함하는 RX_CONTEXT 대한 포인터입니다.
반환 값
RxFsdPostRequest 는 다음 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
비동기 요청이 만들어졌으며 이후 처리를 위해 작업자 스레드에 큐에 대기되었습니다. 요청의 상태 보류 중입니다. |
설명
RxFsdPostRequest 는 일반적으로 비동기 IRP(I/O 요청 패킷)를 처리하기 위해 RDBSS에서 호출됩니다. 이러한 IRP는 일반적으로 파일에 대한 작업을 요청하는 사용자 모드 애플리케이션에 대한 응답으로 RDBSS에서 수신됩니다. 다른 커널 드라이버가 이러한 IRP를 발급할 수도 있습니다.
RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 Flags 멤버에 RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED 비트 집합이 없는 경우 RxFsdPostRequest는 특정 유형의 요청에 필요한 모든 사용자 주소 공간을 잠그려고 시도합니다. 이 동작을 초래하는 요청은 RxContext가 가리키는 RX_CONTEXT 구조체의 MajorFunction 멤버를 기반으로 하며 다음을 포함합니다.
- RxContext->MinorFunction이 IRP_MN_QUERY_DIRECTORY경우 CONTROL을 IRP_MJ_DIRECTORY.
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
IRP의 FileObject 멤버가 NULL 이 아니며 처리를 위해 요청을 즉시 게시할 수 있는 경우(디바이스 큐에 대한 임계값이 비어 있음) 이 발생합니다. 그렇지 않으면 요청이 볼륨의 오버플로 큐에 게시됩니다.
RxFsdPostRequest에 대한 모든 호출은 RxContext 매개 변수를 전달하는 RxFsdDispatch 루틴을 호출하기 위해 작업자 스레드에 큐에 대기됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | rxprocs.h(Rxprocs.h, Rxcontx.h 포함) |
IRQL | <= APC_LEVEL |