다음을 통해 공유


NdisQueueIoWorkItem 함수(ndis.h)

NDIS 드라이버는 NdisQueueIoWorkItem 함수를 호출하여 작업 항목을 큐에 추가합니다.

구문

void NdisQueueIoWorkItem(
  [in] NDIS_HANDLE              NdisIoWorkItemHandle,
  [in] NDIS_IO_WORKITEM_ROUTINE Routine,
  [in] PVOID                    WorkItemContext
);

매개 변수

[in] NdisIoWorkItemHandle

에 대한 이전 호출에서 반환된 프라이빗 IO_WORKITEM 구조체에 대한 핸들입니다. NdisAllocateIoWorkItem 함수.

[in] Routine

NDIS가 작업 항목을 처리하기 위해 호출하는 함수의 진입점입니다. NDIS는 시스템 스레드의 컨텍스트에서 이 루틴을 호출합니다.

참고 NDIS_IO_WORKITEM_ROUTINE 아닌NDIS_IO_WORKITEM_FUNCTION 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.
 
루틴에는 다음 입력 매개 변수가 포함됩니다.

WorkItemContext

드라이버가 NdisQueueIoWorkItemWorkItemContext 매개 변수에 전달한 컨텍스트 영역에 대한 포인터입니다.

NdisIoWorkItemHandle

에 대한 이전 호출에서 반환된 프라이빗 NDIS_IO_WORKITEM 구조체에 대한 핸들입니다. NdisAllocateIoWorkItem 함수.

[in] WorkItemContext

NDIS가 콜백 루틴으로 전달하는 호출자 제공 컨텍스트 영역에 대한 포인터입니다. WorkItemContext 는 드라이버가 작업 항목을 관리하는 데 필요한 호출자 지정 데이터일 수 있습니다.

반환 값

없음

설명

NdisQueueIoWorkItemIoQueueWorkItem 을 호출하여 작업 항목을 큐에 추가합니다. NDIS 작업 항목은 CriticalWorkQueue 큐 유형을 사용합니다.

호출자 제공 콜백 루틴(NDIS_IO_WORKITEM_ROUTINE)은 IRQL = PASSIVE_LEVEL 시스템 스레드 컨텍스트에서 실행됩니다.

이 호출자 제공 루틴은 NdisFreeIoWorkItem 함수를 호출하여 작업 항목에 할당된 스토리지를 회수할 수 있습니다.

Routine 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾을 수 있으며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 "MyWorkitemRoutine"이라는 Routine 함수를 정의하려면 다음 코드 예제와 같이 NDIS_IO_WORKITEM_FUNCTION 형식을 사용합니다.

NDIS_IO_WORKITEM_FUNCTION MyWorkitemRoutine;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
VOID
 MyWorkitemRoutine(
    PVOID   WorkItemContext,
    NDIS_HANDLE  NdisIoWorkItemHandle
    )
  {...}

NDIS_IO_WORKITEM_FUNCTION 함수 형식은 Ndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 NDIS_IO_WORKITEM_FUNCTION 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작 주석 지정을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_Miscellaneous_Function(ndis)

추가 정보

IoQueueWorkItem

MiniportHaltEx

NDIS I/O 작업 항목

NdisAllocateIoWorkItem

NdisFreeIoWorkItem