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