다음을 통해 공유


IoAllocateDriverObjectExtension 함수(wdm.h)

IoAllocateDriverObjectExtension 루틴은 드라이버 개체 확장이라고 하는 드라이버별 컨텍스트 영역을 할당하고 고유 식별자를 할당합니다.

구문

NTSTATUS IoAllocateDriverObjectExtension(
  [in]  PDRIVER_OBJECT DriverObject,
  [in]  PVOID          ClientIdentificationAddress,
  [in]  ULONG          DriverObjectExtensionSize,
  [out] PVOID          *DriverObjectExtension
);

매개 변수

[in] DriverObject

컨텍스트 영역이 연결될 드라이버 개체에 대한 포인터입니다.

[in] ClientIdentificationAddress

할당할 컨텍스트 영역에 대한 고유 식별자를 지정합니다.

[in] DriverObjectExtensionSize

할당할 컨텍스트 영역의 길이(바이트)를 지정합니다.

[out] DriverObjectExtension

완료 시 할당된 컨텍스트 영역에 대한 포인터입니다.

반환 값

IoAllocateDriverObjectExtension 은 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
루틴이 요청된 크기의 확장을 할당했음을 나타냅니다.
STATUS_INSUFFICIENT_RESOURCES
드라이버 개체 확장에 메모리를 할당할 수 없음을 나타냅니다.
STATUS_OBJECT_NAME_COLLISION
지정된 ClientIdentificationAddress 가 있는 드라이버 개체 확장이 이미 있음을 나타냅니다.

설명

드라이버 개체 확장에 대해 시스템에서 할당한 메모리는 상주 스토리지이며 모든 IRQL에서 액세스할 수 있습니다. 할당된 스토리지는 드라이버 개체가 삭제되면 I/O 관리자가 자동으로 해제합니다.

이 루틴의 호출자는 ClientIdentificationAddress에 대한 고유 식별자를 제공해야 합니다. 컨텍스트 영역에 대한 포인터를 검색하기 위해 호출자는 ClientIdentificationAddressIoGetDriverObjectExtension에 전달합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

IoGetDriverObjectExtension