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 코드 중 하나를 반환합니다.
| 반환 코드 | 묘사 |
|---|---|
|
루틴이 요청된 크기의 확장을 할당했음을 나타냅니다. |
|
드라이버 개체 확장에 메모리를 할당할 수 없음을 나타냅니다. |
|
지정된 ClientIdentificationAddress 있는 드라이버 개체 확장이 이미 있음을 나타냅니다. |
발언
드라이버 개체 확장에 대해 시스템에서 할당한 메모리는 상주 스토리지이며 모든 IRQL에서 액세스할 수 있습니다. 할당된 스토리지는 드라이버 개체가 삭제될 때 I/O 관리자가 자동으로 해제합니다.
이 루틴의 호출자는 ClientIdentificationAddress대한 고유 식별자를 제공해야 합니다. 컨텍스트 영역에 대한 포인터를 검색하기 위해 호출자는 ClientIdentificationAddress IoGetDriverObjectExtension 전달합니다.
요구 사항
| 요구 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
| 대상 플랫폼 | 보편적 |
| 헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
| 라이브러리 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | <= DISPATCH_LEVEL |