RxInitializeContext 함수(rxcontx.h)
RxInitializeContext 는 기존 RX_CONTEXT 데이터 구조를 초기화합니다.
구문
void RxInitializeContext(
[in, optional] IN PIRP Irp,
[in] IN PRDBSS_DEVICE_OBJECT RxDeviceObject,
[in] IN ULONG InitialContextFlags,
[in, out] IN OUT PRX_CONTEXT RxContext
);
매개 변수
[in, optional] Irp
이 RX_CONTEXT 구조체로 캡슐화할 IRP에 대한 포인터입니다.
[in] RxDeviceObject
이 RX_CONTEXT 및 IRP가 적용되는 디바이스 개체에 대한 포인터입니다.
[in] InitialContextFlags
RX_CONTEXT 구조에 저장할 RX_CONTEXT 데이터 구조의 Flags 멤버에 대한 초기 값 집합입니다. 이러한 초기 값은 다음 열거형의 조합일 수 있습니다.
RX_CONTEXT_FLAG_WAIT
이 값을 설정하면 파일 시스템 프로세스에서 나중에 실행하기 위해 IRP를 게시하지 않아야 하지만 완료될 때까지 기다려야 합니다.
RX_CONTEXT_FLAG_MUST_SUCCEED
이 값을 설정하면 작업이 성공해야 합니다. 이 값은 현재 RDBSS에서 사용되지 않지만 네트워크 미니 리다이렉터 드라이버에서 사용할 수 있습니다.
RX_CONTEXT_FLAG_MUST_SUCCEED_NONBLOCKING
이 값을 설정하면 비블로킹 작업에 대해 작업이 성공해야 합니다. 이 값은 현재 RDBSS에서 사용되지 않지만 네트워크 미니 리다이렉터 드라이버에서 사용할 수 있습니다.
[in, out] RxContext
초기화할 RX_CONTEXT 대한 포인터입니다.
반환 값
없음
설명
RxInitializeContext 는 RxCreateRxContext 루틴에 의해 내부적으로 호출됩니다. 따라서 RxInitializeContext 루틴은 일반적으로 RxCreateRxContext 루틴을 호출하여 RX_CONTEXT 구조를 할당하고 초기화하는 대신 RX_CONTEXT 구조를 직접 할당하는 네트워크 min-redirector 드라이버에서만 사용됩니다.
Irp 매개 변수가 비동기 작업에 대해 구성된 경우 RxContext가 가리키는 RX_CONTEXT 구조의 Flags 멤버에도 다음 값 집합이 있습니다.
RX_CONTEXT_FLAG_ASYNC_OPERATION 다음 조건에 대해서도 설정됩니다.
- Irp의 MajorFunction 멤버는 IRP_MJ_READ, IRP_MJ_WRITE 또는 IRP_MJ_DEVICE_CONTROL.
- Irp의 MajorFunction 멤버는 IRP_MJ_DIRECTORY_CONTROL IRP의 MinorFunction 멤버는 IRP_MN_NOTIFY_CHANGE_DIRECTORY.
- Irp의 MajorFunction 멤버는 IRP_MJ_FILE_SYSTEM_CONTROL 및 연결된 FCB의 NetRoot 멤버가 NULL이 아니고 NET_ROOT Type 멤버가 NET_ROOT_PIPE.
RxDeviceObject 매개 변수가 최상위 RDBSS 디바이스 개체임을 나타내는 경우 RX_CONTEXT 구조체의 Flags 멤버에도 다음 값 집합이 있습니다.
Irp FileObject Flags 멤버에 FO_WRITE_THROUGH 옵션이 설정된 경우 RX_CONTEXT 구조체의 Flags 멤버에도 다음 값 집합이 있습니다.
RxInitializeContext 는 다음을 포함하여 RX_CONTEXT 구조의 다른 여러 멤버를 설정합니다.
- 적절한 NodeTypeCode, NodeByteSize, SerialNumber, RxDeviceObject를 설정하고 ReferenceCount 를 1로 초기화합니다.
- SyncEvent 초기화
- 연결된 ScavengerEntry 초기화
- BlockedOperations의 목록 항목을 초기화합니다.
- Irp에 따라 RX_CONTEXT 멤버를 설정합니다. 여기에는 CurrentIrp, OriginalThread, MajorFunction, MinorFunction, CurrentIrpSp, pFcb, NonPagedFcb, pFobx, pRelevantSrvOpen 및 FobxSerialNumber 멤버가 포함됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | rxcontx.h(Rxprocs.h rxcontx.h 포함) |
IRQL | <= APC_LEVEL |
추가 정보
RxDereferenceAndDeleteRxContext_Real
RxResumeBlockedOperations_Serially