Функция DxgkInitialize (dispmprt.h)
Функция DxgkInitialize загружает и инициализирует подсистему ядра графики DirectX (Dxgkrnl.sys).
Синтаксис
NTSTATUS DxgkInitialize(
[in] PDRIVER_OBJECT DriverObject,
[in] PUNICODE_STRING RegistryPath,
[in] PDRIVER_INITIALIZATION_DATA DriverInitializationData
);
Параметры
[in] DriverObject
Указатель на структуру DRIVER_OBJECT . Драйвер мини-порта дисплея ранее получил этот указатель в своей функции DriverEntry .
[in] RegistryPath
Указатель на структуру UNICODE_STRING , которая предоставляет путь к разделу реестра службы драйвера. Драйвер мини-порта дисплея ранее получил этот указатель в своей функции DRIVER_OBJECT .
[in] DriverInitializationData
Указатель на структуру DRIVER_INITIALIZATION_DATA , которая предоставляет подсистеме ядра графики DirectX указатели на функции, реализованные драйвером мини-порта дисплея.
Возвращаемое значение
DxgkInitializeвозвращает STATUS_SUCCESS в случае успешного выполнения; в противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.
Комментарии
Функция DriverEntry драйвера мини-порта дисплея вызывает DxgkInitialize.
Примеры
В следующем примере кода показана реализация DriverEntry , в которой вызывается DxgkInitialize .
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
DRIVER_INITIALIZATION_DATA DriverInitializationData = {'\0'};
PAGED_CODE();
if (! ARGUMENT_PRESENT(DriverObject) ||
! ARGUMENT_PRESENT(RegistryPath))
{
return STATUS_INVALID_PARAMETER;
}
// Fill in the DriverInitializationData structure and call DxgkInitialize()
DriverInitializationData.Version = DXGKDDI_INTERFACE_VERSION;
DriverInitializationData.DxgkDdiAddDevice = AtiAddDevice;
DriverInitializationData.DxgkDdiStartDevice = AtiStartDevice;
DriverInitializationData.DxgkDdiStopDevice = AtiStopDevice;
DriverInitializationData.DxgkDdiRemoveDevice = AtiRemoveDevice;
DriverInitializationData.DxgkDdiDispatchIoRequest = AtiDispatchIoRequest;
DriverInitializationData.DxgkDdiInterruptRoutine = AtiInterruptRoutine;
DriverInitializationData.DxgkDdiDpcRoutine = AtiDpcRoutine;
DriverInitializationData.DxgkDdiQueryChildRelations = AtiQueryChildRelations;
DriverInitializationData.DxgkDdiQueryChildStatus = AtiQueryChildStatus;
DriverInitializationData.DxgkDdiQueryDeviceDescriptor = AtiQueryDeviceDescriptor;
DriverInitializationData.DxgkDdiSetPowerState = AtiSetPowerState;
DriverInitializationData.DxgkDdiNotifyAcpiEvent = AtiNotifyAcpiEvent;
DriverInitializationData.DxgkDdiResetDevice = AtiResetDevice;
DriverInitializationData.DxgkDdiUnload = AtiUnload;
DriverInitializationData.DxgkDdiQueryInterface = AtiQueryInterface;
DriverInitializationData.DxgkDdiControlEtwLogging = D3DDDIControlEtwLogging;
DriverInitializationData.DxgkDdiQueryAdapterInfo = D3DDDIQueryAdapterInfo;
DriverInitializationData.DxgkDdiCreateDevice = D3DDDICreateDevice;
DriverInitializationData.DxgkDdiCreateAllocation = D3DDDICreateAllocation;
DriverInitializationData.DxgkDdiDestroyAllocation = D3DDDIDestroyAllocation;
DriverInitializationData.DxgkDdiCreateOverlay = D3DDDICreateOverlay;
DriverInitializationData.DxgkDdiUpdateOverlay = D3DDDIUpdateOverlay;
DriverInitializationData.DxgkDdiFlipOverlay = D3DDDIFlipOverlay;
DriverInitializationData.DxgkDdiDestroyOverlay = D3DDDIDestroyOverlay;
DriverInitializationData.DxgkDdiDescribeAllocation = D3DDDIDescribeAllocation;
DriverInitializationData.DxgkDdiGetStandardAllocationDriverData = D3DDDIGetStandardAllocationDriverData;
DriverInitializationData.DxgkDdiAcquireSwizzlingRange = D3DDDIAcquireSwizzlingRange;
DriverInitializationData.DxgkDdiReleaseSwizzlingRange = D3DDDIReleaseSwizzlingRange;
DriverInitializationData.DxgkDdiOpenAllocation = D3DDDIOpenAllocation;
DriverInitializationData.DxgkDdiCloseAllocation = D3DDDICloseAllocation;
DriverInitializationData.DxgkDdiPatch = D3DDDIPatchDmaBuffer;
DriverInitializationData.DxgkDdiSubmitCommand = D3DDDISubmitCommand;
DriverInitializationData.DxgkDdiBuildPagingBuffer = D3DDDIBuildPagingBuffer;
DriverInitializationData.DxgkDdiSetPalette = D3DDDISetPalette;
DriverInitializationData.DxgkDdiSetPointerShape = D3DDDISetPointerShape;
DriverInitializationData.DxgkDdiSetPointerPosition = D3DDDISetPointerPosition;
DriverInitializationData.DxgkDdiPreemptCommand = D3DDDIPreemptCommand;
DriverInitializationData.DxgkDdiDestroyDevice = D3DDDIDestroyDevice;
DriverInitializationData.DxgkDdiRender = D3DDDIRender;
DriverInitializationData.DxgkDdiRenderKm = D3DDDIRenderKm; DriverInitializationData.DxgkDdiPresent = D3DDDIPresent;
DriverInitializationData.DxgkDdiResetFromTimeout = D3DDDIResetFromTimeout;
DriverInitializationData.DxgkDdiRestartFromTimeout = D3DDDIRestartFromTimeout;
DriverInitializationData.DxgkDdiEscape = D3DDDIEscape;
DriverInitializationData.DxgkDdiCollectDbgInfo = D3DDDICollectDbgInfo;
DriverInitializationData.DxgkDdiQueryCurrentFence = D3DDDIQueryCurrentFence;
DriverInitializationData.DxgkDdiControlInterrupt = D3DDDIControlInterrupt;
DriverInitializationData.DxgkDdiGetScanLine = D3DDDIGetScanLine;
DriverInitializationData.DxgkDdiStopCapture = D3DDDI DxgkDdiStopCapture; DriverInitializationData.DxgkDdiSetVidPnSourceAddress = D3DDDISetVidPnSourceAddress;
DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = D3DDDISetVidPnSourceVisibility;
DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = D3DDDIUpdateActiveVidPnPresentPath;
DriverInitializationData.DxgkDdiCommitVidPn = D3DDDICommitVidPn;
DriverInitializationData.DxgkDdiRecommendMonitorModes = D3DDDIRecommendMonitorModes;
DriverInitializationData.DxgkDdiRecommendVidPnTopology = D3DDDIRecommendVidPnTopology;
DriverInitializationData.DxgkDdiCreateContext = D3DDDICreateContext;
DriverInitializationData.DxgkDdiDestroyContext = D3DDDIDestroyContext;
DriverInitializationData.DxgkDdiLinkDevice = D3DDDILinkDevice;
DriverInitializationData.DxgkDdiSetDisplayPrivateDriverFormat = D3DDDISetDisplayPrivateDriverFormat;
DriverInitializationData.DxgkDdiRecommendFunctionalVidPn = D3DDDIRecommendFunctionalVidPn_XddmParity;
DriverInitializationData.DxgkDdiEnumVidPnCofuncModality = D3DDDIEnumVidPnCofuncModality_XddmParity;
DriverInitializationData.DxgkDdiIsSupportedVidPn = D3DDDIIsSupportedVidPn_XddmParity;
DriverInitializationData.DxgkDdiQueryVidPnHWCapability = D3DDDI DxgkDdiQueryVidPnHWCapability;
return DxgkInitialize(DriverObject,
RegistryPath,
&DriverInitializationData);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Целевая платформа | Персональный компьютер |
Верхняя часть | dispmprt.h (включая Dispmprt.h) |
IRQL | PASSIVE_LEVEL |