FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE 함수(ndis.h)

NDIS는 기본 드라이버에서 동기 OID 요청이 완료된 후 필터 드라이버의 FilterSynchronousOidRequestComplete 함수를 호출합니다.

이 함수는 NDIS 6.81 이상에서 지원됩니다.

구문

void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
  [in]      NDIS_HANDLE      FilterModuleContext,
  [in, out] NDIS_OID_REQUEST *OidRequest,
  [in, out] NDIS_STATUS      *Status,
  [in]      PVOID            CallContext
);

매개 변수

[in] FilterModuleContext

이 요청의 대상인 필터 모듈의 컨텍스트 영역에 대한 핸들입니다. FilterAttach 함수에서 이 컨텍스트 영역을 만들고 초기화한 필터 드라이버입니다.

[in, out] OidRequest

완료되는 작업을 지정하는 NDIS_OID_REQUEST 구조체에 대한 포인터입니다.

[in, out] Status

완료되는 요청의 결과 상태 코드에 대한 포인터입니다.

[in] CallContext

FilterSynchronousOidRequestFilterSynchronousOidRequestComplete 처리기 간에 상태를 공유할 필터 드라이버에 대한 PVOID 크기의 스토리지 슬롯입니다. 필터 드라이버가 FilterSynchronousOidRequest 처리기를 구현하는 경우 이 매개 변수에는 FilterSynchronousOidRequest 처리기가 반환한 컨텍스트 값이 포함됩니다. 그렇지 않으면 필터 드라이버가 FilterSynchronousOidRequest 처리기를 구현하지 않으면 이 값은 0입니다.

반환 값

없음

설명

FilterSynchronousOidRequestComplete 는 선택적 함수입니다. 필터 드라이버가 미니포트 드라이버에서 완료된 동기 OID 요청을 관찰하거나 수정할 필요가 없는 경우 필터 드라이버는 NdisFRegisterFilterDriver를 호출할 때 이 함수의 진입점을 NULL로 설정해야 합니다.

NDIS는 필터 드라이버의 FilterSynchronousOidRequestComplete 함수를 호출하여 기본 드라이버에서 완료된 동기 OID 요청을 처리합니다. 필터 드라이버는 다음과 같이 NDIS_OID_REQUEST 구조의 일부 필드를 읽거나 수정할 수 있습니다.

필드 액세스 필터링
헤더 읽기 전용
RequestType 읽기/쓰기
PortNumber 읽기/쓰기
제한 시간 액세스 안 함
RequestId 액세스 안 함
RequestHandle 읽기/쓰기
DATA 읽기/쓰기
NdisReserved 액세스 안 함
MiniportReserved 액세스 안 함
SourceReserved 액세스 안 함
SupportedRevision 읽기/쓰기
Reserved1, Reserved2 액세스 안 함
SwitchId 읽기/쓰기
VPortId 읽기/쓰기
플래그 읽기/쓰기

필터 드라이버는 NDIS_OID_REQUEST 구조를 수정하는 것 외에도 작업이 완료된 상태 코드를 읽거나 수정할 수 있습니다. 필터 드라이버는 *Status 매개 변수에 새 값을 쓸 수 있습니다. 필터 드라이버는 *Status 매개 변수에 NDIS_STATUS_PENDING 또는 NDIS_STATUS_ALREADY_COMPLETE 작성해서는 안 됩니다.

필터 드라이버가 FilterSynchronousOidRequest 처리기도 등록하는 경우 NDIS는 FilterSynchronousOidRequest 처리기가 NDIS_STATUS_SUCCESS 반환하는 경우에만 FilterSynchronousOidRequestComplete 처리기가 호출되도록 보장합니다.

필터 드라이버는 차단, 대기 또는 절전 모드 없이 FilterSynchronousOidRequestComplete 처리기에서 신속하게 반환해야 합니다. 동기 OID 요청은 짧은 대기 시간 작업에만 사용되며 필터 드라이버는 몇 밀리초 내에 계속하거나 완료하려고 노력해야 합니다.

NDIS는 동기 OID 요청을 서로, 다른 OID 요청 또는 FilterPause에 대해 직렬화하지 않습니다. 필요한 동기화를 구현하는 것은 필터 드라이버의 책임입니다.

NDIS는 FilterDetach에 대해 동기 OID 요청을 직렬화합니다. NDIS는 FilterDetach 가 호출되면 동기 OID 요청이 활성화되지 않도록 보장합니다.

필터 드라이버는 동기 OID 요청에서 NdisAllocateCloneOidRequest 또는 NdisCancelOidRequest 를 호출해서는 안 됩니다. FilterSynchronousOidRequestComplete 처리기를 통해 수신되는 OID 요청에서 필터 드라이버는 NdisFSynchronousOidRequest를 호출해서는 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1709
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL <= DISPATCH_LEVEL

추가 정보

FilterSynchronousOidRequest

NdisFSynchronousOidRequest

NDIS 6.80의 동기 OID 요청 인터페이스