PcInitializeAdapterDriver 함수(portcls.h)

PcInitializeAdapterDriver 함수는 어댑터 드라이버를 PortCls 시스템 드라이버에 바인딩합니다. 디바이스 추가 및 제거를 위한 IRP 처리기 및 처리기가 드라이버 개체에 설치됩니다. 둘 이상의 클래스 드라이버에 바인딩해야 하는 어댑터 드라이버는 이 함수를 호출하면 안 됩니다.

구문

PORTCLASSAPI NTSTATUS PcInitializeAdapterDriver(
  [in] PDRIVER_OBJECT     DriverObject,
  [in] PUNICODE_STRING    RegistryPathName,
  [in] PDRIVER_ADD_DEVICE AddDevice
);

매개 변수

[in] DriverObject

DRIVER_OBJECT 형식의 시스템 구조인 드라이버 개체에 대한 포인터입니다. 이 포인터는 어댑터의 DriverEntry 함수에 매개 변수로 전달됩니다.

[in] RegistryPathName

어댑터의 DriverEntry 함수에 매개 변수로 전달될 레지스트리 경로 이름을 지정합니다.

[in] AddDevice

어댑터의 AddDevice 함수에 대한 포인터입니다. ntddk.h로 정의된 PDRIVER_ADD_DEVICE 형식의 포인터입니다.

  NTSTATUS
    (*PDRIVER_ADD_DEVICE)(
      IN struct _DRIVER_OBJECT  *DriverObject,
      IN struct _DEVICE_OBJECT  *PhysicalDeviceObject
        );

반환 값

PcInitializeAdapterDriver는 호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 적절한 오류 코드를 반환합니다.

설명

이 함수에 대한 호출에서 제공된 AddDevice 처리기는 PcAddAdapterDevice를 호출해야 합니다. 자세한 내용은 시작 시퀀스를 참조하세요.

PcInitializeAdapterDriver 함수는 드라이버 개체에 다음 IRP에 대한 처리기에 대한 포인터를 로드합니다.

  • IRP_MJ_CLOSE
  • IRP_MJ_CREATE
  • IRP_MJ_DEVICE_CONTROL
  • IRP_MJ_FLUSH_BUFFERS
  • IRP_MJ_PNP
  • IRP_MJ_POWER
  • IRP_MJ_QUERY_SECURITY
  • IRP_MJ_READ
  • IRP_MJ_SET_SECURITY
  • IRP_MJ_SYSTEM_CONTROL
  • IRP_MJ_WRITE
PortCls는 위의 CREATE, PNP, POWER 및 SYSTEM_CONTROL IRP에 대해 자체 내부 처리기를 사용합니다. 다른 7개의 IRP에 대해 기본 KS 처리기를 사용합니다.

자체 IRP 처리기에 대한 포인터로 위의 하나 이상의 포인터를 덮어쓰는 어댑터 드라이버는 IRP를 PortCls로 전달하기 위해 처리기 루틴 내에서 PcDispatchIrp 을 호출할 수 있습니다. 코드 예제는 Microsoft WDK(Windows 드라이버 키트)의 SB16 샘플 오디오 드라이버를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 PortCls 시스템 드라이버는 Microsoft Windows 98/Me 및 Windows 2000 이상 운영 체제에서 PcInitializeAdapterDriver 함수를 구현합니다.
대상 플랫폼 유니버설
헤더 portcls.h(Portcls.h 포함)
라이브러리 Portcls.lib
IRQL PASSIVE_LEVEL

참고 항목

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp