NdisAllocateIoWorkItem 함수(ndis.h)

NDIS 드라이버는 NdisAllocateIoWorkItem 함수를 호출하여 작업 항목을 할당합니다. 자세한 내용은 NDIS I/O 작업 항목을 참조하세요.

구문

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

매개 변수

[in] NdisObjectHandle

디바이스 개체 또는 드라이버 개체와 연결된 NDIS 개체의 핸들입니다.

반환 값

NdisAllocateIoWorkItem이 작업 항목을 성공적으로 할당하면 작업 항목에 대한 핸들을 반환합니다. 실패하면 NdisAllocateIoWorkItemNULL을 반환합니다.

설명

NDIS 미니포트 드라이버는 NDIS가 MiniportInitializeEx 함수에 전달한 어댑터 핸들 또는 미니포트 드라이버가 호출될 때 NDIS가 반환한 미니포트 드라이버 핸들의 두 핸들 중 하나로 NdisAllocateIoWorkItem을 전달합니다. NdisMRegisterMiniportDriver.

NDIS 필터 드라이버는 NdisFRegisterFilterDriver라는 필터 드라이버가 반환된 필터 드라이버 핸들인 NdisAllocateIoWorkItem을 전달할 수 있습니다.

NDIS 미니포트 드라이버 및 필터 드라이버는 드라이버가 NdisRegisterDeviceEx라고 할 때 NDIS가 반환한 NDIS 디바이스 핸들인 NdisAllocateIoWorkItem을 전달할 수도 있습니다. NdisAllocateIoWorkItem 은 핸들과 연결된 디바이스 개체 또는 드라이버 개체를 가져오고 디바이스 개체 또는 드라이버 개체를 IoAllocateWorkItem 함수에 전달합니다.

참고 NDIS는 프로토콜 드라이버를 디바이스 개체 또는 드라이버 개체와 연결하지 않으므로 프로토콜 드라이버는 NdisAllocateIoWorkItem 을 사용할 수 없습니다.
 
NDIS 드라이버는 NdisQueueIoWorkItem 함수를 호출하여 작업 항목을 큐에 추가합니다. 드라이버가 NdisQueueIoWorkItem을 호출한 후 NDIS는 IRQL = PASSIVE_LEVEL 드라이버 지정 콜백 함수를 호출합니다. 이렇게 하면 현재 함수가 즉시 종료되고 드라이버가 나중에 더 낮은 IRQL에서 작동할 수 있도록 하여 시스템 성능을 향상시킬 수 있습니다.

NDIS 드라이버는 NdisAllocateIoWorkItem 이 할당한 작업 항목과 연결된 리소스를 해제하려면 NdisFreeIoWorkItem 함수를 호출해야 합니다.

드라이버는 NdisQueueIoWorkItem 에 전달되는 콜백 루틴에서 NdisFreeIoWorkItem을 호출할 수 있습니다.

미니포트 드라이버가 NdisAllocateIoWorkItem을 호출할 때 NDIS가 MiniportInitializeEx에 전달한 핸들을 사용한 경우 작업 항목은 드라이버 MiniportHaltEx 함수 호출 전이나 호출에서 해제되어야 합니다.

미니포트 드라이버가 NdisAllocateIoWorkItem이라는 드라이버가 호출할 때 NdisMRegisterMiniportDriver가 반환한 핸들을 사용한 경우 드라이버는 드라이버가 언로드하기 전에 작업 항목을 해제해야 합니다.

일반적으로 드라이버는 드라이버가 언로드되기 전에 작업 항목을 해제해야 합니다.

요구 사항

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

추가 정보

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

NDIS I/O 작업 항목

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx